@firestone-hs/simulate-bgs-battle 1.1.724 → 1.1.726

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 (386) hide show
  1. package/dist/bgs-battle-info.js.map +1 -1
  2. package/dist/bgs-player-entity.d.ts +2 -0
  3. package/dist/bgs-player-entity.js.map +1 -1
  4. package/dist/board-entity.d.ts +1 -0
  5. package/dist/board-entity.js.map +1 -1
  6. package/dist/cards/card.interface.d.ts +1 -1
  7. package/dist/cards/card.interface.js.map +1 -1
  8. package/dist/cards/impl/_card-mappings.js +114 -0
  9. package/dist/cards/impl/_card-mappings.js.map +1 -1
  10. package/dist/cards/impl/bg-spell/mighty-dragonbreath.d.ts +2 -0
  11. package/dist/cards/impl/bg-spell/mighty-dragonbreath.js +28 -0
  12. package/dist/cards/impl/bg-spell/mighty-dragonbreath.js.map +1 -0
  13. package/dist/cards/impl/bg-spell/misplaced-tea-set.d.ts +2 -0
  14. package/dist/cards/impl/bg-spell/misplaced-tea-set.js +16 -0
  15. package/dist/cards/impl/bg-spell/misplaced-tea-set.js.map +1 -0
  16. package/dist/cards/impl/bg-spell/repair-job.d.ts +2 -0
  17. package/dist/cards/impl/bg-spell/repair-job.js +19 -0
  18. package/dist/cards/impl/bg-spell/repair-job.js.map +1 -0
  19. package/dist/cards/impl/bg-spell/sharing-is-caring.js.map +1 -1
  20. package/dist/cards/impl/bg-spell/toxic-tumbleweed.js.map +1 -1
  21. package/dist/cards/impl/bg-spell/weapons-forge.d.ts +2 -0
  22. package/dist/cards/impl/bg-spell/weapons-forge.js +12 -0
  23. package/dist/cards/impl/bg-spell/weapons-forge.js.map +1 -0
  24. package/dist/cards/impl/bg-spell/winners-bread.d.ts +2 -0
  25. package/dist/cards/impl/bg-spell/winners-bread.js +19 -0
  26. package/dist/cards/impl/bg-spell/winners-bread.js.map +1 -0
  27. package/dist/cards/impl/enchantments/admiration.d.ts +2 -0
  28. package/dist/cards/impl/enchantments/admiration.js +17 -0
  29. package/dist/cards/impl/enchantments/admiration.js.map +1 -0
  30. package/dist/cards/impl/enchantments/charisma.d.ts +2 -0
  31. package/dist/cards/impl/enchantments/charisma.js +44 -0
  32. package/dist/cards/impl/enchantments/charisma.js.map +1 -0
  33. package/dist/cards/impl/enchantments/consanguinity.d.ts +2 -0
  34. package/dist/cards/impl/enchantments/consanguinity.js +13 -0
  35. package/dist/cards/impl/enchantments/consanguinity.js.map +1 -0
  36. package/dist/cards/impl/enchantments/defensive-sacrifice.d.ts +2 -0
  37. package/dist/cards/impl/enchantments/defensive-sacrifice.js +17 -0
  38. package/dist/cards/impl/enchantments/defensive-sacrifice.js.map +1 -0
  39. package/dist/cards/impl/enchantments/golemancy.d.ts +2 -0
  40. package/dist/cards/impl/enchantments/golemancy.js +19 -0
  41. package/dist/cards/impl/enchantments/golemancy.js.map +1 -0
  42. package/dist/cards/impl/enchantments/hostility.d.ts +2 -0
  43. package/dist/cards/impl/enchantments/hostility.js +12 -0
  44. package/dist/cards/impl/enchantments/hostility.js.map +1 -0
  45. package/dist/cards/impl/enchantments/invulnerability.d.ts +2 -0
  46. package/dist/cards/impl/enchantments/invulnerability.js +12 -0
  47. package/dist/cards/impl/enchantments/invulnerability.js.map +1 -0
  48. package/dist/cards/impl/enchantments/jaws-of-death.d.ts +2 -0
  49. package/dist/cards/impl/enchantments/jaws-of-death.js +17 -0
  50. package/dist/cards/impl/enchantments/jaws-of-death.js.map +1 -0
  51. package/dist/cards/impl/enchantments/mystic-essence.d.ts +2 -0
  52. package/dist/cards/impl/enchantments/mystic-essence.js +13 -0
  53. package/dist/cards/impl/enchantments/mystic-essence.js.map +1 -0
  54. package/dist/cards/impl/enchantments/offensive-sacrifice.d.ts +2 -0
  55. package/dist/cards/impl/enchantments/offensive-sacrifice.js +18 -0
  56. package/dist/cards/impl/enchantments/offensive-sacrifice.js.map +1 -0
  57. package/dist/cards/impl/enchantments/persisting-horror.d.ts +2 -0
  58. package/dist/cards/impl/enchantments/persisting-horror.js +6 -0
  59. package/dist/cards/impl/enchantments/persisting-horror.js.map +1 -0
  60. package/dist/cards/impl/enchantments/resistance.d.ts +2 -0
  61. package/dist/cards/impl/enchantments/resistance.js +12 -0
  62. package/dist/cards/impl/enchantments/resistance.js.map +1 -0
  63. package/dist/cards/impl/enchantments/toreths-blessing.d.ts +2 -0
  64. package/dist/cards/impl/enchantments/toreths-blessing.js +13 -0
  65. package/dist/cards/impl/enchantments/toreths-blessing.js.map +1 -0
  66. package/dist/cards/impl/enchantments/transcendence.d.ts +2 -0
  67. package/dist/cards/impl/enchantments/transcendence.js +12 -0
  68. package/dist/cards/impl/enchantments/transcendence.js.map +1 -0
  69. package/dist/cards/impl/hero-power/aim-high.js.map +1 -1
  70. package/dist/cards/impl/hero-power/aim-left.js.map +1 -1
  71. package/dist/cards/impl/hero-power/aim-low.js.map +1 -1
  72. package/dist/cards/impl/hero-power/aim-right.js.map +1 -1
  73. package/dist/cards/impl/hero-power/earth-invocation.js.map +1 -1
  74. package/dist/cards/impl/hero-power/embrace-your-rage.js.map +1 -1
  75. package/dist/cards/impl/hero-power/fire-invocation.js.map +1 -1
  76. package/dist/cards/impl/hero-power/reborn-rites.js.map +1 -1
  77. package/dist/cards/impl/hero-power/water-invocation.js.map +1 -1
  78. package/dist/cards/impl/minion/all-seeing-elder.js.map +1 -1
  79. package/dist/cards/impl/minion/alleycat.js.map +1 -1
  80. package/dist/cards/impl/minion/amber-guardian.js.map +1 -1
  81. package/dist/cards/impl/minion/archimonde.js.map +1 -1
  82. package/dist/cards/impl/minion/arid-atrocity.js.map +1 -1
  83. package/dist/cards/impl/minion/ashen-corruptor.js.map +1 -1
  84. package/dist/cards/impl/minion/assistant-guard.js.map +1 -1
  85. package/dist/cards/impl/minion/audacious-anchor.js.map +1 -1
  86. package/dist/cards/impl/minion/auto-assembler.js.map +1 -1
  87. package/dist/cards/impl/minion/avalanche-caller.js.map +1 -1
  88. package/dist/cards/impl/minion/baneling.js.map +1 -1
  89. package/dist/cards/impl/minion/barrier-banshee.d.ts +2 -0
  90. package/dist/cards/impl/minion/barrier-banshee.js +15 -0
  91. package/dist/cards/impl/minion/barrier-banshee.js.map +1 -0
  92. package/dist/cards/impl/minion/bigwig-bandit.js.map +1 -1
  93. package/dist/cards/impl/minion/bird-buddy.js.map +1 -1
  94. package/dist/cards/impl/minion/blazing-skyfin.js.map +1 -1
  95. package/dist/cards/impl/minion/blue-whelp.js.map +1 -1
  96. package/dist/cards/impl/minion/boar-gamer.js.map +1 -1
  97. package/dist/cards/impl/minion/boom-in-a-box.d.ts +2 -0
  98. package/dist/cards/impl/minion/boom-in-a-box.js +19 -0
  99. package/dist/cards/impl/minion/boom-in-a-box.js.map +1 -0
  100. package/dist/cards/impl/minion/bramble-tunneler.d.ts +2 -0
  101. package/dist/cards/impl/minion/bramble-tunneler.js +14 -0
  102. package/dist/cards/impl/minion/bramble-tunneler.js.map +1 -0
  103. package/dist/cards/impl/minion/briarback-bookie.js.map +1 -1
  104. package/dist/cards/impl/minion/bronze-steward.js.map +1 -1
  105. package/dist/cards/impl/minion/bronze-timewalker.d.ts +2 -0
  106. package/dist/cards/impl/minion/bronze-timewalker.js +22 -0
  107. package/dist/cards/impl/minion/bronze-timewalker.js.map +1 -0
  108. package/dist/cards/impl/minion/bubble-gunner.js.map +1 -1
  109. package/dist/cards/impl/minion/buzzing-vermin.js.map +1 -1
  110. package/dist/cards/impl/minion/cadaver-caretaker.js.map +1 -1
  111. package/dist/cards/impl/minion/cage-gnawer.d.ts +2 -0
  112. package/dist/cards/impl/minion/cage-gnawer.js +20 -0
  113. package/dist/cards/impl/minion/cage-gnawer.js.map +1 -0
  114. package/dist/cards/impl/minion/captain-bonerender.js.map +1 -1
  115. package/dist/cards/impl/minion/carapace-raiser.js.map +1 -1
  116. package/dist/cards/impl/minion/carbonic-copy.js.map +1 -1
  117. package/dist/cards/impl/minion/coilskar-sapper.js.map +1 -1
  118. package/dist/cards/impl/minion/coldlight-diver.js.map +1 -1
  119. package/dist/cards/impl/minion/crimson-vindicator.d.ts +2 -0
  120. package/dist/cards/impl/minion/crimson-vindicator.js +24 -0
  121. package/dist/cards/impl/minion/crimson-vindicator.js.map +1 -0
  122. package/dist/cards/impl/minion/crystal-infuser-enchantment.js.map +1 -1
  123. package/dist/cards/impl/minion/cupcake-peddler.js.map +1 -1
  124. package/dist/cards/impl/minion/deadstomper.js.map +1 -1
  125. package/dist/cards/impl/minion/deathly-striker.js.map +1 -1
  126. package/dist/cards/impl/minion/deathstrider.d.ts +2 -0
  127. package/dist/cards/impl/minion/deathstrider.js +27 -0
  128. package/dist/cards/impl/minion/deathstrider.js.map +1 -0
  129. package/dist/cards/impl/minion/deflecto-bot.js.map +1 -1
  130. package/dist/cards/impl/minion/devout-hellcaller.js.map +1 -1
  131. package/dist/cards/impl/minion/drakkari-embalmer.js.map +1 -1
  132. package/dist/cards/impl/minion/elder-taggawag.js.map +1 -1
  133. package/dist/cards/impl/minion/electric-synthesizer.js.map +1 -1
  134. package/dist/cards/impl/minion/elite-navigator.js.map +1 -1
  135. package/dist/cards/impl/minion/fairy-gillmother.js.map +1 -1
  136. package/dist/cards/impl/minion/firescale-hoarder.js.map +1 -1
  137. package/dist/cards/impl/minion/fireworks-fanatic.js.map +1 -1
  138. package/dist/cards/impl/minion/fishbait.d.ts +2 -0
  139. package/dist/cards/impl/minion/fishbait.js +21 -0
  140. package/dist/cards/impl/minion/fishbait.js.map +1 -0
  141. package/dist/cards/impl/minion/fleeing-fugitive.d.ts +2 -0
  142. package/dist/cards/impl/minion/fleeing-fugitive.js +15 -0
  143. package/dist/cards/impl/minion/fleeing-fugitive.js.map +1 -0
  144. package/dist/cards/impl/minion/flittering-bat.d.ts +2 -0
  145. package/dist/cards/impl/minion/flittering-bat.js +25 -0
  146. package/dist/cards/impl/minion/flittering-bat.js.map +1 -0
  147. package/dist/cards/impl/minion/flotsam-flinger.js.map +1 -1
  148. package/dist/cards/impl/minion/fountain-chiller.js.map +1 -1
  149. package/dist/cards/impl/minion/friendly-geist.js.map +1 -1
  150. package/dist/cards/impl/minion/gatekeeper-amalgam.d.ts +2 -0
  151. package/dist/cards/impl/minion/gatekeeper-amalgam.js +22 -0
  152. package/dist/cards/impl/minion/gatekeeper-amalgam.js.map +1 -0
  153. package/dist/cards/impl/minion/gem-rat.js.map +1 -1
  154. package/dist/cards/impl/minion/general-drakkisath.js.map +1 -1
  155. package/dist/cards/impl/minion/gentle-djinni.js.map +1 -1
  156. package/dist/cards/impl/minion/gentle-stag.js.map +1 -1
  157. package/dist/cards/impl/minion/glambot.d.ts +2 -0
  158. package/dist/cards/impl/minion/glambot.js +30 -0
  159. package/dist/cards/impl/minion/glambot.js.map +1 -0
  160. package/dist/cards/impl/minion/gormling-gourmet.js.map +1 -1
  161. package/dist/cards/impl/minion/greedy-snaketongue.js.map +1 -1
  162. package/dist/cards/impl/minion/grimscale-elegist.js.map +1 -1
  163. package/dist/cards/impl/minion/gritty-headhunter.js.map +1 -1
  164. package/dist/cards/impl/minion/hackerfin.js.map +1 -1
  165. package/dist/cards/impl/minion/handless-forsaken.js.map +1 -1
  166. package/dist/cards/impl/minion/harmless-bonehead.js.map +1 -1
  167. package/dist/cards/impl/minion/hawkstrider-herald.js.map +1 -1
  168. package/dist/cards/impl/minion/headhunter-gryphon.d.ts +2 -0
  169. package/dist/cards/impl/minion/headhunter-gryphon.js +19 -0
  170. package/dist/cards/impl/minion/headhunter-gryphon.js.map +1 -0
  171. package/dist/cards/impl/minion/hoarding-hyena.d.ts +2 -0
  172. package/dist/cards/impl/minion/hoarding-hyena.js +23 -0
  173. package/dist/cards/impl/minion/hoarding-hyena.js.map +1 -0
  174. package/dist/cards/impl/minion/holo-rover.js.map +1 -1
  175. package/dist/cards/impl/minion/humongozz.js.map +1 -1
  176. package/dist/cards/impl/minion/hungry-snapjaw.js.map +1 -1
  177. package/dist/cards/impl/minion/hunter-of-gatherers.js.map +1 -1
  178. package/dist/cards/impl/minion/ignition-specialist.js.map +1 -1
  179. package/dist/cards/impl/minion/immortal.js.map +1 -1
  180. package/dist/cards/impl/minion/imp-lusionist.d.ts +2 -0
  181. package/dist/cards/impl/minion/imp-lusionist.js +14 -0
  182. package/dist/cards/impl/minion/imp-lusionist.js.map +1 -0
  183. package/dist/cards/impl/minion/implant-subject.js.map +1 -1
  184. package/dist/cards/impl/minion/imposing-percussionist.js.map +1 -1
  185. package/dist/cards/impl/minion/inspiring-underdog.js.map +1 -1
  186. package/dist/cards/impl/minion/interrogator-whitemane.js.map +1 -1
  187. package/dist/cards/impl/minion/jailbird-juggernaut.d.ts +2 -0
  188. package/dist/cards/impl/minion/jailbird-juggernaut.js +52 -0
  189. package/dist/cards/impl/minion/jailbird-juggernaut.js.map +1 -0
  190. package/dist/cards/impl/minion/kangors-apprentice.js.map +1 -1
  191. package/dist/cards/impl/minion/leeroy-the-reckless.js.map +1 -1
  192. package/dist/cards/impl/minion/lightfang-enforcer.js.map +1 -1
  193. package/dist/cards/impl/minion/lightfeather-screecher.js.map +1 -1
  194. package/dist/cards/impl/minion/living-azerite.js.map +1 -1
  195. package/dist/cards/impl/minion/lokholar-frostforger.js.map +1 -1
  196. package/dist/cards/impl/minion/lovesick-balladist.js.map +1 -1
  197. package/dist/cards/impl/minion/low-flier.js.map +1 -1
  198. package/dist/cards/impl/minion/lurker.js.map +1 -1
  199. package/dist/cards/impl/minion/manasaber.js.map +1 -1
  200. package/dist/cards/impl/minion/mantid-queen.js.map +1 -1
  201. package/dist/cards/impl/minion/marquee-ticker.js.map +1 -1
  202. package/dist/cards/impl/minion/maw-caster.js.map +1 -1
  203. package/dist/cards/impl/minion/mecha-jaraxxus.js.map +1 -1
  204. package/dist/cards/impl/minion/mechanized-gift-horse.js.map +1 -1
  205. package/dist/cards/impl/minion/mechorse.js.map +1 -1
  206. package/dist/cards/impl/minion/menagerie-jug.js.map +1 -1
  207. package/dist/cards/impl/minion/metallic-hunter.js.map +1 -1
  208. package/dist/cards/impl/minion/misfit-dragonling.js.map +1 -1
  209. package/dist/cards/impl/minion/moat-custodian.d.ts +2 -0
  210. package/dist/cards/impl/minion/moat-custodian.js +15 -0
  211. package/dist/cards/impl/minion/moat-custodian.js.map +1 -0
  212. package/dist/cards/impl/minion/motley-phalanx.d.ts +2 -0
  213. package/dist/cards/impl/minion/motley-phalanx.js +13 -0
  214. package/dist/cards/impl/minion/motley-phalanx.js.map +1 -0
  215. package/dist/cards/impl/minion/murkbrine-expeditioner.js.map +1 -1
  216. package/dist/cards/impl/minion/murky.js.map +1 -1
  217. package/dist/cards/impl/minion/mutated-lasher.js.map +1 -1
  218. package/dist/cards/impl/minion/mythrax.js.map +1 -1
  219. package/dist/cards/impl/minion/neon-agent.js.map +1 -1
  220. package/dist/cards/impl/minion/nest-swarmer.js.map +1 -1
  221. package/dist/cards/impl/minion/nether-drake.js.map +1 -1
  222. package/dist/cards/impl/minion/nightmare-par-tea-guest.js.map +1 -1
  223. package/dist/cards/impl/minion/nimble-hatchling.js.map +1 -1
  224. package/dist/cards/impl/minion/operatic-belcher.js.map +1 -1
  225. package/dist/cards/impl/minion/outback-smolderer.js.map +1 -1
  226. package/dist/cards/impl/minion/parched-wanderer.js.map +1 -1
  227. package/dist/cards/impl/minion/primalfin-lookout.js.map +1 -1
  228. package/dist/cards/impl/minion/rapscallion-recruiter.js.map +1 -1
  229. package/dist/cards/impl/minion/ravaging-scorpid.d.ts +2 -0
  230. package/dist/cards/impl/minion/ravaging-scorpid.js +26 -0
  231. package/dist/cards/impl/minion/ravaging-scorpid.js.map +1 -0
  232. package/dist/cards/impl/minion/razorgore-the-untamed.js.map +1 -1
  233. package/dist/cards/impl/minion/rescue-bot.d.ts +2 -0
  234. package/dist/cards/impl/minion/rescue-bot.js +14 -0
  235. package/dist/cards/impl/minion/rescue-bot.js.map +1 -0
  236. package/dist/cards/impl/minion/roach.js.map +1 -1
  237. package/dist/cards/impl/minion/roadboar.js.map +1 -1
  238. package/dist/cards/impl/minion/rodeo-performer.js.map +1 -1
  239. package/dist/cards/impl/minion/ruins-renovator.js.map +1 -1
  240. package/dist/cards/impl/minion/runic-arcanist.d.ts +2 -0
  241. package/dist/cards/impl/minion/runic-arcanist.js +24 -0
  242. package/dist/cards/impl/minion/runic-arcanist.js.map +1 -0
  243. package/dist/cards/impl/minion/rylak-metalhead.js.map +1 -1
  244. package/dist/cards/impl/minion/salty-hog.js.map +1 -1
  245. package/dist/cards/impl/minion/sand-swirler.js.map +1 -1
  246. package/dist/cards/impl/minion/sandy.js.map +1 -1
  247. package/dist/cards/impl/minion/scourge-harvester.js.map +1 -1
  248. package/dist/cards/impl/minion/selfless-hero.js.map +1 -1
  249. package/dist/cards/impl/minion/shadowdancer.js.map +1 -1
  250. package/dist/cards/impl/minion/shamanic-tidecaller.d.ts +2 -0
  251. package/dist/cards/impl/minion/shamanic-tidecaller.js +25 -0
  252. package/dist/cards/impl/minion/shamanic-tidecaller.js.map +1 -0
  253. package/dist/cards/impl/minion/sharp-eyed-sabretooth.js.map +1 -1
  254. package/dist/cards/impl/minion/sharptooth-snapper.js.map +1 -1
  255. package/dist/cards/impl/minion/ship-master-eudora.js.map +1 -1
  256. package/dist/cards/impl/minion/shipwrecked-rascal.js.map +1 -1
  257. package/dist/cards/impl/minion/silver-handed-recruit.js.map +1 -1
  258. package/dist/cards/impl/minion/slumber-sorcerer.js.map +1 -1
  259. package/dist/cards/impl/minion/smolderwing.js.map +1 -1
  260. package/dist/cards/impl/minion/snazzy-phantom.d.ts +2 -0
  261. package/dist/cards/impl/minion/snazzy-phantom.js +23 -0
  262. package/dist/cards/impl/minion/snazzy-phantom.js.map +1 -0
  263. package/dist/cards/impl/minion/soul-rewinder.js.map +1 -1
  264. package/dist/cards/impl/minion/spacefarer.js.map +1 -1
  265. package/dist/cards/impl/minion/spirited-whimsydrake.js.map +1 -1
  266. package/dist/cards/impl/minion/springy-spriggan.js.map +1 -1
  267. package/dist/cards/impl/minion/stitched-salvager.js.map +1 -1
  268. package/dist/cards/impl/minion/stray-satyr.js.map +1 -1
  269. package/dist/cards/impl/minion/sun-screener.js.map +1 -1
  270. package/dist/cards/impl/minion/surfing-slyvar.js.map +1 -1
  271. package/dist/cards/impl/minion/tasty-lobster.d.ts +2 -0
  272. package/dist/cards/impl/minion/tasty-lobster.js +21 -0
  273. package/dist/cards/impl/minion/tasty-lobster.js.map +1 -0
  274. package/dist/cards/impl/minion/thorncaller.js.map +1 -1
  275. package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -1
  276. package/dist/cards/impl/minion/thundering-abomination.js.map +1 -1
  277. package/dist/cards/impl/minion/timewarped-warghoul.js.map +1 -1
  278. package/dist/cards/impl/minion/torrential-ruiner.d.ts +2 -0
  279. package/dist/cards/impl/minion/torrential-ruiner.js +20 -0
  280. package/dist/cards/impl/minion/torrential-ruiner.js.map +1 -0
  281. package/dist/cards/impl/minion/tunnel-blaster.js.map +1 -1
  282. package/dist/cards/impl/minion/twilight-primordium.js.map +1 -1
  283. package/dist/cards/impl/minion/twilight-tidehunter.d.ts +2 -0
  284. package/dist/cards/impl/minion/twilight-tidehunter.js +21 -0
  285. package/dist/cards/impl/minion/twilight-tidehunter.js.map +1 -0
  286. package/dist/cards/impl/minion/ultralisk.js.map +1 -1
  287. package/dist/cards/impl/minion/valiant-tiger.js.map +1 -1
  288. package/dist/cards/impl/minion/vigilant-bristlemane.d.ts +2 -0
  289. package/dist/cards/impl/minion/vigilant-bristlemane.js +19 -0
  290. package/dist/cards/impl/minion/vigilant-bristlemane.js.map +1 -0
  291. package/dist/cards/impl/minion/void-earl.js.map +1 -1
  292. package/dist/cards/impl/minion/vorkai-guardian.js.map +1 -1
  293. package/dist/cards/impl/minion/wandering-wight.js.map +1 -1
  294. package/dist/cards/impl/minion/whelp-smuggler.js.map +1 -1
  295. package/dist/cards/impl/minion/whirring-protector-enchantment.js.map +1 -1
  296. package/dist/cards/impl/minion/wildfire-elemental.js.map +1 -1
  297. package/dist/cards/impl/minion/wisp-in-the-shell.js.map +1 -1
  298. package/dist/cards/impl/minion/wolf-pup.d.ts +2 -0
  299. package/dist/cards/impl/minion/wolf-pup.js +18 -0
  300. package/dist/cards/impl/minion/wolf-pup.js.map +1 -0
  301. package/dist/cards/impl/minion/yorik-smite.js.map +1 -1
  302. package/dist/cards/impl/minion/yrel.js.map +1 -1
  303. package/dist/cards/impl/minion/yulon-fortune-granter.js.map +1 -1
  304. package/dist/cards/impl/quest-reward/righteous-charge.js.map +1 -1
  305. package/dist/cards/impl/spellcraft/floating-candle-set.d.ts +2 -0
  306. package/dist/cards/impl/spellcraft/floating-candle-set.js +21 -0
  307. package/dist/cards/impl/spellcraft/floating-candle-set.js.map +1 -0
  308. package/dist/cards/impl/spellcraft/undersea-mount.js +1 -1
  309. package/dist/cards/impl/spellcraft/undersea-mount.js.map +1 -1
  310. package/dist/cards/impl/trinket/all-purpose-kibble.js.map +1 -1
  311. package/dist/cards/impl/trinket/arm-of-the-empire.js.map +1 -1
  312. package/dist/cards/impl/trinket/assembler-portrait.d.ts +2 -0
  313. package/dist/cards/impl/trinket/assembler-portrait.js +17 -0
  314. package/dist/cards/impl/trinket/assembler-portrait.js.map +1 -0
  315. package/dist/cards/impl/trinket/bassgill-portrait.js.map +1 -1
  316. package/dist/cards/impl/trinket/battle-horn.js.map +1 -1
  317. package/dist/cards/impl/trinket/bird-feeder.js.map +1 -1
  318. package/dist/cards/impl/trinket/crocheted-sungill.js.map +1 -1
  319. package/dist/cards/impl/trinket/deathwhisper-sticker.d.ts +2 -0
  320. package/dist/cards/impl/trinket/deathwhisper-sticker.js +12 -0
  321. package/dist/cards/impl/trinket/deathwhisper-sticker.js.map +1 -0
  322. package/dist/cards/impl/trinket/dragon-skull.d.ts +2 -0
  323. package/dist/cards/impl/trinket/dragon-skull.js +15 -0
  324. package/dist/cards/impl/trinket/dragon-skull.js.map +1 -0
  325. package/dist/cards/impl/trinket/dragons-eye.d.ts +4 -0
  326. package/dist/cards/impl/trinket/dragons-eye.js +14 -0
  327. package/dist/cards/impl/trinket/dragons-eye.js.map +1 -0
  328. package/dist/cards/impl/trinket/eclectic-shrine.js.map +1 -1
  329. package/dist/cards/impl/trinket/eternal-portrait.d.ts +2 -0
  330. package/dist/cards/impl/trinket/eternal-portrait.js +26 -1
  331. package/dist/cards/impl/trinket/eternal-portrait.js.map +1 -1
  332. package/dist/cards/impl/trinket/faerie-dragon-scale.js.map +1 -1
  333. package/dist/cards/impl/trinket/fishy-sticker.js.map +1 -1
  334. package/dist/cards/impl/trinket/flighty-portrait.d.ts +2 -0
  335. package/dist/cards/impl/trinket/flighty-portrait.js +21 -0
  336. package/dist/cards/impl/trinket/flighty-portrait.js.map +1 -0
  337. package/dist/cards/impl/trinket/funeral-wreath.d.ts +2 -0
  338. package/dist/cards/impl/trinket/funeral-wreath.js +16 -0
  339. package/dist/cards/impl/trinket/funeral-wreath.js.map +1 -0
  340. package/dist/cards/impl/trinket/herald-sticker.js.map +1 -1
  341. package/dist/cards/impl/trinket/karazhan-chess-set.js.map +1 -1
  342. package/dist/cards/impl/trinket/lightfeather-sticker.d.ts +2 -0
  343. package/dist/cards/impl/trinket/lightfeather-sticker.js +18 -0
  344. package/dist/cards/impl/trinket/lightfeather-sticker.js.map +1 -0
  345. package/dist/cards/impl/trinket/lionfish-portrait.d.ts +2 -0
  346. package/dist/cards/impl/trinket/lionfish-portrait.js +18 -0
  347. package/dist/cards/impl/trinket/lionfish-portrait.js.map +1 -0
  348. package/dist/cards/impl/trinket/lovely-locket.d.ts +2 -0
  349. package/dist/cards/impl/trinket/lovely-locket.js +24 -0
  350. package/dist/cards/impl/trinket/lovely-locket.js.map +1 -0
  351. package/dist/cards/impl/trinket/myrmidon-sticker.d.ts +2 -0
  352. package/dist/cards/impl/trinket/myrmidon-sticker.js +21 -0
  353. package/dist/cards/impl/trinket/myrmidon-sticker.js.map +1 -0
  354. package/dist/cards/impl/trinket/rivendare-portrait.js.map +1 -1
  355. package/dist/cards/impl/trinket/sthara-sticker.js.map +1 -1
  356. package/dist/cards/impl/trinket/valorous-medaillion.js.map +1 -1
  357. package/dist/cards/impl/trinket/vashjir-anemone.js.map +1 -1
  358. package/dist/cards/impl/trinket/yulon-sticker.js.map +1 -1
  359. package/dist/debug-state.js.map +1 -1
  360. package/dist/keywords/divine-shield.js +4 -0
  361. package/dist/keywords/divine-shield.js.map +1 -1
  362. package/dist/keywords/venomous.js.map +1 -1
  363. package/dist/services/card-ids.d.ts +694 -27
  364. package/dist/services/card-ids.js.map +1 -1
  365. package/dist/simulation/add-minion-to-board.js +11 -5
  366. package/dist/simulation/add-minion-to-board.js.map +1 -1
  367. package/dist/simulation/auras.js +48 -46
  368. package/dist/simulation/auras.js.map +1 -1
  369. package/dist/simulation/battlecries.d.ts +1 -1
  370. package/dist/simulation/battlecries.js +18 -3
  371. package/dist/simulation/battlecries.js.map +1 -1
  372. package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
  373. package/dist/simulation/deathrattle-spawns.js +0 -5
  374. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  375. package/dist/simulation/discover.js.map +1 -1
  376. package/dist/simulation/frenzy.js.map +1 -1
  377. package/dist/simulation/quest.js.map +1 -1
  378. package/dist/simulation/reborn.js +2 -0
  379. package/dist/simulation/reborn.js.map +1 -1
  380. package/dist/simulation/start-of-combat/soc-minion.js +4 -1
  381. package/dist/simulation/start-of-combat/soc-minion.js.map +1 -1
  382. package/dist/simulation/utils/golden.js +6 -2
  383. package/dist/simulation/utils/golden.js.map +1 -1
  384. package/dist/utils.js +4 -1
  385. package/dist/utils.js.map +1 -1
  386. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vorkai-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vorkai-guardian.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,uDAA2D;AAI9C,QAAA,cAAc,GAAsB;IAChD,OAAO,EAAE,0BAAoE;IAC7E,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChF,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACb;QACD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,IAAA,kCAAkB,EACjB,SAAS,EACT,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const VorkaiGuardian: StartOfCombatCard = {\r\n\tcardIds: [CardIds.VorkaiGuardian_BG32_867, CardIds.VorkaiGuardian_BG32_867_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionsWithDivineShield = input.playerBoard.filter((e) => e.divineShield);\r\n\t\tif (minionsWithDivineShield.length > 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst neighbours = getNeighbours(input.playerBoard, minion);\r\n\t\tneighbours.forEach((neighbour) => {\r\n\t\t\tupdateDivineShield(\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\ttrue,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"vorkai-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vorkai-guardian.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,uDAA2D;AAI9C,QAAA,cAAc,GAAsB;IAChD,OAAO,EAAE,0BAAoE;IAC7E,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,uBAAuB,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChF,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,OAAO,KAAK,CAAC;SACb;QACD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,IAAA,kCAAkB,EACjB,SAAS,EACT,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const VorkaiGuardian: StartOfCombatCard = {\r\n\tcardIds: [CardIds.VorkaiGuardian_BG32_867, CardIds.VorkaiGuardian_BG32_867_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionsWithDivineShield = input.playerBoard.filter((e) => e.divineShield);\r\n\t\tif (minionsWithDivineShield.length > 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst neighbours = getNeighbours(input.playerBoard, minion);\r\n\t\tneighbours.forEach((neighbour) => {\r\n\t\t\tupdateDivineShield(\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\ttrue,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t});\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wandering-wight.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wandering-wight.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,cAAc,GAA0B;IACpD,OAAO,EAAE,0BAAoE;IAC7E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9G,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const WanderingWight: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.WanderingWight_BG31_126, CardIds.WanderingWight_BG31_126_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.WanderingWight_BG31_126 ? 1 : 2;\r\n\t\tmodifyStats(input.spawned, minion, 0, input.spawned.attack * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wandering-wight.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wandering-wight.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,cAAc,GAA0B;IACpD,OAAO,EAAE,0BAAoE;IAC7E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9G,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const WanderingWight: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.WanderingWight_BG31_126, CardIds.WanderingWight_BG31_126_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.WanderingWight_BG31_126 ? 1 : 2;\r\n\t\tmodifyStats(input.spawned, minion, 0, input.spawned.attack * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"whelp-smuggler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whelp-smuggler.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,qDAA6E;AAC7E,0CAAiD;AAGjD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEV,QAAA,aAAa,GAAuB;IAChD,OAAO,EAAE,0BAAkE;IAC3E,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,cAAc,EAAE,CAAC;QACjB,IACC,IAAA,uBAAe,EACd,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB;YACD,KAAK,CAAC,YAAY,GAAG,CAAC,EACrB;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACrF;QACD,cAAc,EAAE,CAAC;IAClB,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats, OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnStatsChangedCard } from '../../card.interface';\r\n\r\nlet callStackDepth = 0; // Global variable to track call stack depth\r\n\r\nexport const WhelpSmuggler: OnStatsChangedCard = {\r\n\tcardIds: [CardIds.WhelpSmuggler_BG21_013, CardIds.WhelpSmuggler_BG21_013_G],\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tcallStackDepth++;\r\n\t\tif (\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.target,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.DRAGON,\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\tinput.attackAmount > 0\r\n\t\t) {\r\n\t\t\tconst buff = minion.cardId === CardIds.WhelpSmuggler_BG21_013_G ? 2 : 1;\r\n\t\t\tmodifyStats(input.target, minion, 0, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tcallStackDepth--;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whelp-smuggler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whelp-smuggler.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,qDAA6E;AAC7E,0CAAiD;AAGjD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEV,QAAA,aAAa,GAAuB;IAChD,OAAO,EAAE,0BAAkE;IAC3E,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,cAAc,EAAE,CAAC;QACjB,IACC,IAAA,uBAAe,EACd,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB;YACD,KAAK,CAAC,YAAY,GAAG,CAAC,EACrB;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACrF;QACD,cAAc,EAAE,CAAC;IAClB,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats, OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnStatsChangedCard } from '../../card.interface';\r\n\r\nlet callStackDepth = 0; // Global variable to track call stack depth\r\n\r\nexport const WhelpSmuggler: OnStatsChangedCard = {\r\n\tcardIds: [CardIds.WhelpSmuggler_BG21_013, CardIds.WhelpSmuggler_BG21_013_G],\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tcallStackDepth++;\r\n\t\tif (\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.target,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.DRAGON,\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\tinput.attackAmount > 0\r\n\t\t) {\r\n\t\t\tconst buff = minion.cardId === CardIds.WhelpSmuggler_BG21_013_G ? 2 : 1;\r\n\t\t\tmodifyStats(input.target, minion, 0, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tcallStackDepth--;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"whirring-protector-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,4BAA4B,GAAc;IACtD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAAwB,EAAE,KAAoB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,kBAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirringProtectorEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807e,\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge,\r\n\t],\r\n\trally: (enchantment: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== input.attacker);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, enchantment, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whirring-protector-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirring-protector-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,4BAA4B,GAAc;IACtD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAAwB,EAAE,KAAoB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,kBAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1G;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirringProtectorEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807e,\r\n\t\tCardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge,\r\n\t],\r\n\trally: (enchantment: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.WhirringProtector_WhirringProtectorEnchantment_BG33_807_Ge ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e !== input.attacker);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, enchantment, 5 * mult, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wildfire-elemental.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wildfire-elemental.ts"],"names":[],"mappings":";;;AAEA,uDAAqF;AAGxE,QAAA,iBAAiB,GAAuB;IACpD,OAAO,EAAE,8BAA8E;IACvF,cAAc,EAAE,CACf,MAAmB,EACnB,KAA0B,EACiC,EAAE;QAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QAChD,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,IAAI,MAAM,CAAC,MAAM,cAAsC,EAAE;gBACxD,MAAM,YAAY,GACjB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvF,oBAAoB,IAAI,IAAA,2BAAkB,EACzC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,oBAAoB,EACvC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;iBAAM;gBACN,oBAAoB,IAAI,KAAK,CAAC,kBAAkB;qBAC9C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,IAAA,2BAAkB,EACjB,SAAS,EACT,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,oBAAoB,EACvC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CACD;qBACA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion, OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const WildfireElemental: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.WildfireElemental_BGS_126, CardIds.WildfireElemental_TB_BaconUps_166],\r\n\tonMinionKilled: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (input.killer !== minion || !input.killerIsAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst excessDamage = -input.minionKilled.health;\r\n\t\tlet damageDoneByAttacker = 0;\r\n\t\t// console.log('neighbours', stringifySimple(neighbours, allCards));\r\n\t\tif (input.defenderNeighbours.length > 0) {\r\n\t\t\tif (minion.cardId === CardIds.WildfireElemental_BGS_126) {\r\n\t\t\t\tconst randomTarget =\r\n\t\t\t\t\tinput.defenderNeighbours[Math.floor(Math.random() * input.defenderNeighbours.length)];\r\n\t\t\t\tdamageDoneByAttacker += dealDamageToMinion(\r\n\t\t\t\t\trandomTarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tinput.minionKilled.lastAffectedByEntity,\r\n\t\t\t\t\texcessDamage,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tdamageDoneByAttacker += input.defenderNeighbours\r\n\t\t\t\t\t.map((neighbour) =>\r\n\t\t\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\t\t\tneighbour,\r\n\t\t\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\t\t\tinput.minionKilled.lastAffectedByEntity,\r\n\t\t\t\t\t\t\texcessDamage,\r\n\t\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: damageDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wildfire-elemental.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wildfire-elemental.ts"],"names":[],"mappings":";;;AAEA,uDAAqF;AAGxE,QAAA,iBAAiB,GAAuB;IACpD,OAAO,EAAE,8BAA8E;IACvF,cAAc,EAAE,CACf,MAAmB,EACnB,KAA0B,EACiC,EAAE;QAC7D,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QAChD,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,IAAI,MAAM,CAAC,MAAM,cAAsC,EAAE;gBACxD,MAAM,YAAY,GACjB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvF,oBAAoB,IAAI,IAAA,2BAAkB,EACzC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,oBAAoB,EACvC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;iBAAM;gBACN,oBAAoB,IAAI,KAAK,CAAC,kBAAkB;qBAC9C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAClB,IAAA,2BAAkB,EACjB,SAAS,EACT,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CAAC,oBAAoB,EACvC,YAAY,EACZ,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CACD;qBACA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToMinion, OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const WildfireElemental: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.WildfireElemental_BGS_126, CardIds.WildfireElemental_TB_BaconUps_166],\r\n\tonMinionKilled: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnMinionKilledInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (input.killer !== minion || !input.killerIsAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst excessDamage = -input.minionKilled.health;\r\n\t\tlet damageDoneByAttacker = 0;\r\n\t\t// console.log('neighbours', stringifySimple(neighbours, allCards));\r\n\t\tif (input.defenderNeighbours.length > 0) {\r\n\t\t\tif (minion.cardId === CardIds.WildfireElemental_BGS_126) {\r\n\t\t\t\tconst randomTarget =\r\n\t\t\t\t\tinput.defenderNeighbours[Math.floor(Math.random() * input.defenderNeighbours.length)];\r\n\t\t\t\tdamageDoneByAttacker += dealDamageToMinion(\r\n\t\t\t\t\trandomTarget,\r\n\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\tinput.minionKilled.lastAffectedByEntity,\r\n\t\t\t\t\texcessDamage,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tdamageDoneByAttacker += input.defenderNeighbours\r\n\t\t\t\t\t.map((neighbour) =>\r\n\t\t\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\t\t\tneighbour,\r\n\t\t\t\t\t\t\tinput.defendingBoard,\r\n\t\t\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\t\t\tinput.minionKilled.lastAffectedByEntity,\r\n\t\t\t\t\t\t\texcessDamage,\r\n\t\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: damageDoneByAttacker, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wisp-in-the-shell.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wisp-in-the-shell.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;YAClC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const WispInTheShell: BattlecryCard = {\r\n\tcardIds: [CardIds.WispInTheShell_BG31_841, CardIds.WispInTheShell_BG31_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst target = pickRandomAlive(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tconst mult = minion.cardId === CardIds.WispInTheShell_BG31_841 ? 1 : 2;\r\n\t\t\tconst baseValue = 1 + (input.hero.globalInfo.FriendlyMinionsDeadLastCombat ?? 0);\r\n\t\t\tconst buff = 2 * mult * baseValue;\r\n\t\t\tmodifyStats(target, minion, buff, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wisp-in-the-shell.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wisp-in-the-shell.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;YAClC,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const WispInTheShell: BattlecryCard = {\r\n\tcardIds: [CardIds.WispInTheShell_BG31_841, CardIds.WispInTheShell_BG31_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst target = pickRandomAlive(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tconst mult = minion.cardId === CardIds.WispInTheShell_BG31_841 ? 1 : 2;\r\n\t\t\tconst baseValue = 1 + (input.hero.globalInfo.FriendlyMinionsDeadLastCombat ?? 0);\r\n\t\t\tconst buff = 2 * mult * baseValue;\r\n\t\t\tmodifyStats(target, minion, buff, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { RallyCard } from '../../card.interface';
2
+ export declare const WolfPup: RallyCard;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WolfPup = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ const wolfPupAttackBuff = 4;
6
+ const wolfPupHealthBuff = 2;
7
+ exports.WolfPup = {
8
+ cardIds: ["BG36_207", "BG36_207_G"],
9
+ rally: (minion, input) => {
10
+ const mult = minion.cardId === "BG36_207_G" ? 2 : 1;
11
+ const targets = input.attackingBoard.filter((e) => e.entityId !== input.attacker.entityId);
12
+ for (const target of targets) {
13
+ (0, stats_1.modifyStats)(target, input.attacker, wolfPupAttackBuff * mult, wolfPupHealthBuff * mult, input.attackingBoard, input.attackingHero, input.gameState);
14
+ }
15
+ return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
16
+ },
17
+ };
18
+ //# sourceMappingURL=wolf-pup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wolf-pup.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wolf-pup.ts"],"names":[],"mappings":";;;AASA,qDAAwD;AAIxD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEf,QAAA,OAAO,GAAc;IACjC,OAAO,EAAE,0BAAsD;IAC/D,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,KAAK,CAAC,QAAQ,EACd,iBAAiB,GAAG,IAAI,EACxB,iBAAiB,GAAG,IAAI,EACxB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Wolf Pup (Tier 3, 3/5)\r\n * Rally: Give your other minions +4/+2.\r\n *\r\n * Golden Wolf Pup (Tier 3, 6/10)\r\n * Rally: Give your other minions +8/+4.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst wolfPupAttackBuff = 4;\r\nconst wolfPupHealthBuff = 2;\r\n\r\nexport const WolfPup: RallyCard = {\r\n\tcardIds: [CardIds.WolfPup_BG36_207, CardIds.WolfPup_BG36_207_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.WolfPup_BG36_207_G ? 2 : 1;\r\n\t\tconst targets = input.attackingBoard.filter((e) => e.entityId !== input.attacker.entityId);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\twolfPupAttackBuff * mult,\r\n\t\t\t\twolfPupHealthBuff * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"yorik-smite.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yorik-smite.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,UAAU,GAAkB;IACxC,OAAO,EAAE,0BAA4D;IACrE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const YorikSmite: EndOfTurnCard = {\r\n\tcardIds: [CardIds.YorikSmite_BG33_827, CardIds.YorikSmite_BG33_827_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.YorikSmite_BG33_827_G ? 2 : 1;\r\n\t\tfor (const target of input.board) {\r\n\t\t\tconst buff = isGolden(target.cardId, input.gameState.allCards) ? 6 : 2;\r\n\t\t\tmodifyStats(target, minion, buff * mult, buff * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"yorik-smite.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yorik-smite.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,UAAU,GAAkB;IACxC,OAAO,EAAE,0BAA4D;IACrE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const YorikSmite: EndOfTurnCard = {\r\n\tcardIds: [CardIds.YorikSmite_BG33_827, CardIds.YorikSmite_BG33_827_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.YorikSmite_BG33_827_G ? 2 : 1;\r\n\t\tfor (const target of input.board) {\r\n\t\t\tconst buff = isGolden(target.cardId, input.gameState.allCards) ? 6 : 2;\r\n\t\t\tmodifyStats(target, minion, buff * mult, buff * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"yrel.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yrel.ts"],"names":[],"mappings":";;;AAGA,0CAA+D;AAGlD,QAAA,IAAI,GAAc;IAC9B,OAAO,EAAE,0BAAgD;IACzD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAA,qCAA6B,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Yrel: RallyCard = {\r\n\tcardIds: [CardIds.Yrel_BG23_350, CardIds.Yrel_BG23_350_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Yrel_BG23_350_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\t1 * mult,\r\n\t\t\t2 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"yrel.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yrel.ts"],"names":[],"mappings":";;;AAGA,0CAA+D;AAGlD,QAAA,IAAI,GAAc;IAC9B,OAAO,EAAE,0BAAgD;IACzD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAA,qCAA6B,EAC5B,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Yrel: RallyCard = {\r\n\tcardIds: [CardIds.Yrel_BG23_350, CardIds.Yrel_BG23_350_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Yrel_BG23_350_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\t1 * mult,\r\n\t\t\t2 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"yulon-fortune-granter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yulon-fortune-granter.ts"],"names":[],"mappings":";;;AAEA,mDAAuD;AAEvD,6DAAoE;AACpE,0CAA0C;AAE7B,QAAA,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW;iBACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC5D,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,eAAyC;gBACjD,CAAC,CAAC,MAAM,iBAA2C,CACpD,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CACnD,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,yBAAgB,EACf,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { isGolden } from '../../../utils';\r\n\r\nexport const YulonFortuneGranter = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.YulonFortuneGranter_BG29_811_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst candidateBoard = input.playerBoard\r\n\t\t\t\t.filter((e) => !isGolden(e.cardId, input.gameState.allCards))\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\te.cardId !== CardIds.YulonFortuneGranter_BG29_811 &&\r\n\t\t\t\t\t\te.cardId !== CardIds.YulonFortuneGranter_BG29_811_G,\r\n\t\t\t\t);\r\n\t\t\t// Because we pick one at random from all the ones that have the lowest tier\r\n\t\t\tconst randomBoard = shuffleArray(candidateBoard);\r\n\t\t\tconst candidates = randomBoard.sort(\r\n\t\t\t\t(a, b) =>\r\n\t\t\t\t\tinput.gameState.cardsData.getTavernLevel(a.cardId) -\r\n\t\t\t\t\tinput.gameState.cardsData.getTavernLevel(b.cardId),\r\n\t\t\t);\r\n\t\t\tconst target = candidates[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"yulon-fortune-granter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/yulon-fortune-granter.ts"],"names":[],"mappings":";;;AAEA,mDAAuD;AAEvD,6DAAoE;AACpE,0CAA0C;AAE7B,QAAA,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW;iBACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;iBAC5D,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,eAAyC;gBACjD,CAAC,CAAC,MAAM,iBAA2C,CACpD,CAAC;YAEH,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,cAAc,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CACnD,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,yBAAgB,EACf,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { isGolden } from '../../../utils';\r\n\r\nexport const YulonFortuneGranter = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.YulonFortuneGranter_BG29_811_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst candidateBoard = input.playerBoard\r\n\t\t\t\t.filter((e) => !isGolden(e.cardId, input.gameState.allCards))\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\te.cardId !== CardIds.YulonFortuneGranter_BG29_811 &&\r\n\t\t\t\t\t\te.cardId !== CardIds.YulonFortuneGranter_BG29_811_G,\r\n\t\t\t\t);\r\n\t\t\t// Because we pick one at random from all the ones that have the lowest tier\r\n\t\t\tconst randomBoard = shuffleArray(candidateBoard);\r\n\t\t\tconst candidates = randomBoard.sort(\r\n\t\t\t\t(a, b) =>\r\n\t\t\t\t\tinput.gameState.cardsData.getTavernLevel(a.cardId) -\r\n\t\t\t\t\tinput.gameState.cardsData.getTavernLevel(b.cardId),\r\n\t\t\t);\r\n\t\t\tconst target = candidates[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"righteous-charge.js","sourceRoot":"","sources":["../../../../src/cards/impl/quest-reward/righteous-charge.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AAGrE,uDAA4D;AAE/C,QAAA,eAAe,GAAsB;IACjD,OAAO,EAAE,mBAAyC;IAClD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,OAAO,EACP,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC/C,IAAA,uBAAc,EACb,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;gBACzC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\nimport { simulateAttack } from '../../../simulation/attack';\r\n\r\nexport const RighteousCharge: StartOfCombatCard = {\r\n\tcardIds: [CardIds.RighteousCharge_BG33_Reward_003],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst target = input.playerBoard[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.attackImmediately = true;\r\n\t\t\t\tconst previousHasAttacked = target.hasAttacked;\r\n\t\t\t\tsimulateAttack(\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.hasAttacked = previousHasAttacked;\r\n\t\t\t\ttarget.attackImmediately = false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"righteous-charge.js","sourceRoot":"","sources":["../../../../src/cards/impl/quest-reward/righteous-charge.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AAGrE,uDAA4D;AAE/C,QAAA,eAAe,GAAsB;IACjD,OAAO,EAAE,mBAAyC;IAClD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,OAAO,EACP,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAChC,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC/C,IAAA,uBAAc,EACb,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;gBACzC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\nimport { simulateAttack } from '../../../simulation/attack';\r\n\r\nexport const RighteousCharge: StartOfCombatCard = {\r\n\tcardIds: [CardIds.RighteousCharge_BG33_Reward_003],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst target = input.playerBoard[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.attackImmediately = true;\r\n\t\t\t\tconst previousHasAttacked = target.hasAttacked;\r\n\t\t\t\tsimulateAttack(\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.hasAttacked = previousHasAttacked;\r\n\t\t\t\ttarget.attackImmediately = false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { TavernSpellCard } from '../../card.interface';
2
+ export declare const FloatingCandleSet: TavernSpellCard;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FloatingCandleSet = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const deathrattle_orchestration_1 = require("../../../simulation/deathrattle-orchestration");
6
+ const deathrattle_utils_1 = require("../../../simulation/deathrattle-utils");
7
+ exports.FloatingCandleSet = {
8
+ cardIds: ["BG36_MagicItem_208t"],
9
+ castTavernSpell: (_spellCardId, input) => {
10
+ const target = input.target && (0, deathrattle_utils_1.hasValidDeathrattle)(input.target, input.hero, input.gameState)
11
+ ? input.target
12
+ : (0, utils_1.pickRandom)((0, deathrattle_utils_1.getValidDeathrattles)(input.board, input.hero, input.gameState));
13
+ if (!target) {
14
+ return;
15
+ }
16
+ input.gameState.spectator.registerPowerTarget(input.source, target, input.board, input.hero, input.otherHero);
17
+ const indexFromRight = input.board.length - (input.board.indexOf(target) + 1);
18
+ (0, deathrattle_orchestration_1.processDeathrattleForMinion)(target, indexFromRight, [target], target.friendly ? input.gameState.gameState.player : input.gameState.gameState.opponent, target.friendly ? input.gameState.gameState.opponent : input.gameState.gameState.player, input.gameState, false);
19
+ },
20
+ };
21
+ //# sourceMappingURL=floating-candle-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-candle-set.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/floating-candle-set.ts"],"names":[],"mappings":";;;AAQA,mDAAqD;AACrD,6FAA4F;AAC5F,6EAAkG;AAGrF,QAAA,iBAAiB,GAAoB;IACjD,OAAO,EAAE,uBAAsE;IAC/E,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,MAAM,GACX,KAAK,CAAC,MAAM,IAAI,IAAA,uCAAmB,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;YAC7E,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAA,wCAAoB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QAED,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;QACF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAA,uDAA2B,EAC1B,MAAM,EACN,cAAc,EACd,CAAC,MAAM,CAAC,EACR,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EACvF,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EACvF,KAAK,CAAC,SAAS,EACf,KAAK,CACL,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Floating Candle Set (Spellcraft token)\r\n * Trigger a friendly minion's Deathrattle.\r\n *\r\n * The trinket itself only generates this token in the tavern; the token can still be cast\r\n * during combat (e.g. Profound Thinker, Lovely Locket, Magicfin Apprentice).\r\n */\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { processDeathrattleForMinion } from '../../../simulation/deathrattle-orchestration';\r\nimport { getValidDeathrattles, hasValidDeathrattle } from '../../../simulation/deathrattle-utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const FloatingCandleSet: TavernSpellCard = {\r\n\tcardIds: [CardIds.FloatingCandleSet_FloatingCandleSetToken_BG36_MagicItem_208t],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target =\r\n\t\t\tinput.target && hasValidDeathrattle(input.target, input.hero, input.gameState)\r\n\t\t\t\t? input.target\r\n\t\t\t\t: pickRandom(getValidDeathrattles(input.board, input.hero, input.gameState));\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\tinput.source,\r\n\t\t\ttarget,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.otherHero,\r\n\t\t);\r\n\t\tconst indexFromRight = input.board.length - (input.board.indexOf(target) + 1);\r\n\t\tprocessDeathrattleForMinion(\r\n\t\t\ttarget,\r\n\t\t\tindexFromRight,\r\n\t\t\t[target],\r\n\t\t\ttarget.friendly ? input.gameState.gameState.player : input.gameState.gameState.opponent,\r\n\t\t\ttarget.friendly ? input.gameState.gameState.opponent : input.gameState.gameState.player,\r\n\t\t\tinput.gameState,\r\n\t\t\tfalse,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -7,7 +7,7 @@ const utils_1 = require("../../../services/utils");
7
7
  const stats_1 = require("../../../simulation/stats");
8
8
  const utils_2 = require("../../../utils");
9
9
  exports.UnderseaMount = {
10
- cardIds: ["BG23_007_Gt", "BG23_007_Gt"],
10
+ cardIds: ["BG23_007t", "BG23_007_Gt"],
11
11
  castTavernSpell: (spellCardId, input) => {
12
12
  var _a;
13
13
  const mult = spellCardId === "BG23_007_Gt" ? 2 : 1;
@@ -1 +1 @@
1
- {"version":3,"file":"undersea-mount.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/undersea-mount.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AACpD,yDAA4D;AAE5D,mDAAqD;AACrD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,8BAAoG;IAC7G,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,kBAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAChG,IAAI,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACxG,IAAA,yBAAc,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACxF;YACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { updateWindfury } from '../../../keywords/windfury';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const UnderseaMount: TavernSpellCard = {\r\n\tcardIds: [CardIds.Waverider_UnderseaMountToken_BG23_007_Gt, CardIds.Waverider_UnderseaMountToken_BG23_007_Gt],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.Waverider_UnderseaMountToken_BG23_007_Gt ? 2 : 1;\r\n\t\tconst target = input.target ?? pickRandom(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(target, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\tif (hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tupdateWindfury(target, true, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t\t}\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.source,\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.otherHero,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"undersea-mount.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/undersea-mount.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AACpD,yDAA4D;AAE5D,mDAAqD;AACrD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,4BAAkG;IAC3G,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,kBAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,IAAA,kBAAU,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAChG,IAAI,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACxG,IAAA,yBAAc,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACxF;YACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,MAAM,EACZ,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { updateWindfury } from '../../../keywords/windfury';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const UnderseaMount: TavernSpellCard = {\r\n\tcardIds: [CardIds.Waverider_UnderseaMountToken_BG23_007t, CardIds.Waverider_UnderseaMountToken_BG23_007_Gt],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.Waverider_UnderseaMountToken_BG23_007_Gt ? 2 : 1;\r\n\t\tconst target = input.target ?? pickRandom(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(target, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\tif (hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tupdateWindfury(target, true, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t\t}\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.source,\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.otherHero,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"all-purpose-kibble.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/all-purpose-kibble.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAuC;IACnE,OAAO,EAAE,sBAA6C;IACtD,8BAA8B,EAAE,CAAC,OAAqB,EAAE,KAAoB,EAAE,EAAE;QAC/E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QACzC,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const AllPurposeKibble: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.AllPurposeKibble_BG32_MagicItem_200],\r\n\tonWheneverAnotherMinionAttacks: (trinket: BoardTrinket, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.BEAST,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst buff = trinket.scriptDataNum1 || 2;\r\n\t\tmodifyStats(input.attacker, trinket, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 2) + 2;\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"all-purpose-kibble.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/all-purpose-kibble.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAuC;IACnE,OAAO,EAAE,sBAA6C;IACtD,8BAA8B,EAAE,CAAC,OAAqB,EAAE,KAAoB,EAAE,EAAE;QAC/E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QACzC,IAAA,mBAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const AllPurposeKibble: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.AllPurposeKibble_BG32_MagicItem_200],\r\n\tonWheneverAnotherMinionAttacks: (trinket: BoardTrinket, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.BEAST,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst buff = trinket.scriptDataNum1 || 2;\r\n\t\tmodifyStats(input.attacker, trinket, buff, 0, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 2) + 2;\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"arm-of-the-empire.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/arm-of-the-empire.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,8BAAwE;IACjF,UAAU,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACjE,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAA,mBAAW,EACV,KAAK,CAAC,eAAe,EACrB,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnMinionAttackedInput } from '../../../simulation/on-being-attacked';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionAttackedCard } from '../../card.interface';\r\n\r\nexport const ArmOfTheEmpire: OnMinionAttackedCard = {\r\n\tcardIds: [CardIds.ArmOfTheEmpire_BGS_110, CardIds.ArmOfTheEmpire_TB_BaconUps_302],\r\n\tonAttacked: (minion: BoardEntity, input: OnMinionAttackedInput) => {\r\n\t\tif (input.defendingEntity.taunt) {\r\n\t\t\tconst mult = minion.cardId === CardIds.ArmOfTheEmpire_TB_BaconUps_302 ? 2 : 1;\r\n\t\t\tmodifyStats(\r\n\t\t\t\tinput.defendingEntity,\r\n\t\t\t\tminion,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.defendingBoard,\r\n\t\t\t\tinput.defendingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"arm-of-the-empire.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/arm-of-the-empire.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,8BAAwE;IACjF,UAAU,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACjE,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAA,mBAAW,EACV,KAAK,CAAC,eAAe,EACrB,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnMinionAttackedInput } from '../../../simulation/on-being-attacked';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionAttackedCard } from '../../card.interface';\r\n\r\nexport const ArmOfTheEmpire: OnMinionAttackedCard = {\r\n\tcardIds: [CardIds.ArmOfTheEmpire_BGS_110, CardIds.ArmOfTheEmpire_TB_BaconUps_302],\r\n\tonAttacked: (minion: BoardEntity, input: OnMinionAttackedInput) => {\r\n\t\tif (input.defendingEntity.taunt) {\r\n\t\t\tconst mult = minion.cardId === CardIds.ArmOfTheEmpire_TB_BaconUps_302 ? 2 : 1;\r\n\t\t\tmodifyStats(\r\n\t\t\t\tinput.defendingEntity,\r\n\t\t\t\tminion,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.defendingBoard,\r\n\t\t\t\tinput.defendingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { StartOfCombatCard } from '../../card.interface';
2
+ export declare const AssemblerPortrait: StartOfCombatCard;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssemblerPortrait = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const magnetize_1 = require("../../../simulation/magnetize");
6
+ const utils_1 = require("../../../utils");
7
+ exports.AssemblerPortrait = {
8
+ cardIds: ["BG36_MagicItem_841"],
9
+ startOfCombat: (trinket, input) => {
10
+ const targets = input.playerBoard.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.MECH, input.gameState.anomalies, input.gameState.allCards));
11
+ for (const target of targets) {
12
+ (0, magnetize_1.magnetizeToTarget)([target], null, ["BG32_172"], input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState);
13
+ }
14
+ return true;
15
+ },
16
+ };
17
+ //# sourceMappingURL=assembler-portrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembler-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/assembler-portrait.ts"],"names":[],"mappings":";;;AAIA,iEAAoD;AAGpD,6DAAkE;AAElE,0CAAiD;AAGpC,QAAA,iBAAiB,GAAsB;IACnD,OAAO,EAAE,sBAA8C;IACvD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACtG,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,IAAI,EACJ,YAAgC,EAChC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Assembler Portrait (2 gold)\r\n * Start of Combat: Magnetize an Auto Assembler to all your Mechs.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\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 AssemblerPortrait: StartOfCombatCard = {\r\n\tcardIds: [CardIds.AssemblerPortrait_BG36_MagicItem_841],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst targets = input.playerBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.playerEntity, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmagnetizeToTarget(\r\n\t\t\t\t[target],\r\n\t\t\t\tnull,\r\n\t\t\t\t[CardIds.AutoAssembler_BG32_172],\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bassgill-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bassgill-portrait.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,sBAA6C;IACtD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;QACtE,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,OAAO,EACb,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,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;IACpG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\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 BassgillPortrait: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BassgillPortrait_BG32_MagicItem_301],\r\n\tafterOtherSpawned: (trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.spawned,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.MURLOC,\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\tupdateDivineShield(input.spawned, input.board, input.hero, input.otherHero, true, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"bassgill-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bassgill-portrait.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,sBAA6C;IACtD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;QACtE,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,OAAO,EACb,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,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;IACpG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\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 BassgillPortrait: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BassgillPortrait_BG32_MagicItem_301],\r\n\tafterOtherSpawned: (trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.spawned,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.MURLOC,\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\tupdateDivineShield(input.spawned, input.board, input.hero, input.otherHero, true, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"battle-horn.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/battle-horn.ts"],"names":[],"mappings":";;;AACA,iEAAuD;AAEvD,mDAAqD;AAErD,iEAAmE;AACnE,0CAAmD;AAGtC,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,sBAAuC;IAChD,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,OAAqB,EAAE,KAAkB,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACjE,CAAC;QACF,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,SAAS,EAAE;YAChB,IAAA,8BAAgB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { GameTag } from '@firestone-hs/reference-data';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const BattleHorn: AvengeCard = {\r\n\tcardIds: [CardIds.BattleHorn_BG32_MagicItem_415],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (trinket: BoardTrinket, input: AvengeInput) => {\r\n\t\tconst battlecries = input.board.filter((e) =>\r\n\t\t\thasEntityMechanic(e, GameTag.BATTLECRY, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst candidate = pickRandom(battlecries);\r\n\t\tif (!!candidate) {\r\n\t\t\ttriggerBattlecry(input.board, input.hero, candidate, input.otherBoard, input.otherHero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(trinket, candidate, input.board, input.hero, input.otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"battle-horn.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/battle-horn.ts"],"names":[],"mappings":";;;AACA,iEAAuD;AAEvD,mDAAqD;AAErD,iEAAmE;AACnE,0CAAmD;AAGtC,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,sBAAuC;IAChD,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,OAAqB,EAAE,KAAkB,EAAE,EAAE;QACrD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACjE,CAAC;QACF,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,SAAS,EAAE;YAChB,IAAA,8BAAgB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5G;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const BattleHorn: AvengeCard = {\r\n\tcardIds: [CardIds.BattleHorn_BG32_MagicItem_415],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (trinket: BoardTrinket, input: AvengeInput) => {\r\n\t\tconst battlecries = input.board.filter((e) =>\r\n\t\t\thasEntityMechanic(e, GameTag.BATTLECRY, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst candidate = pickRandom(battlecries);\r\n\t\tif (!!candidate) {\r\n\t\t\ttriggerBattlecry(input.board, input.hero, candidate, input.otherBoard, input.otherHero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(trinket, candidate, input.board, input.hero, input.otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bird-feeder.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bird-feeder.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,6CAA+F;IACxG,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAA,uBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const BirdFeeder: AvengeCard = {\r\n\tcardIds: [CardIds.BirdFeeder_BG32_MagicItem_864, CardIds.BirdFeeder_BirdFeederToken_BG32_MagicItem_864t],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst buff = minion.cardId === CardIds.BirdFeeder_BG32_MagicItem_864 ? 1 : 4;\r\n\t\taddStatsToBoard(input.hero, input.board, input.hero, buff, buff, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"bird-feeder.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bird-feeder.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,6CAA+F;IACxG,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAA,uBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const BirdFeeder: AvengeCard = {\r\n\tcardIds: [CardIds.BirdFeeder_BG32_MagicItem_864, CardIds.BirdFeeder_BirdFeederToken_BG32_MagicItem_864t],\r\n\tbaseAvengeValue: (cardId: string) => 2,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst buff = minion.cardId === CardIds.BirdFeeder_BG32_MagicItem_864 ? 1 : 4;\r\n\t\taddStatsToBoard(input.hero, input.board, input.hero, buff, buff, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"crocheted-sungill.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/crocheted-sungill.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AAErD,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,gBAAgB,GAAgD;IAC5E,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;;QACjE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAC1D,OAAO;SACP;QACD,MAAM,IAAI,GACT,MAAA,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,0CACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,EAI1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,MAAM,SAAS,GAAG,CAAC,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,CAAA;YAC/C,CAAC,CAAC,IAAA,kBAAU,EAAC,oBAAoB,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;gBACrC,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC;QACR,IAAI,CAAC,SAAS,EAAE;YACf,OAAO;SACP;QACD,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,IAAA,kCAAa,EAC3B,SAAS,CAAC,MAAM,EAChB,CAAC,EACD,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,CAAC,QAAQ,EACnB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,SAAS,EAAiB,CAC/B,CAAC;QACF,IAAA,4BAAmB,EAClB,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,CAAC,EACD,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAfterDeathInput } from '../../../simulation/attack';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { DefaultScriptDataNumCard, OnAfterDeathCard } from '../../card.interface';\r\n\r\nexport const CrochetedSungill: OnAfterDeathCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.CrochetedSungill_BG32_MagicItem_960],\r\n\tdefaultScriptDataNum: (cardId: string) => 1,\r\n\tonAfterDeath: (trinket: BoardTrinket, input: OnAfterDeathInput) => {\r\n\t\tif (input.board.length > 0 || trinket.scriptDataNum1 <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst hand =\r\n\t\t\tinput.hero.hand\r\n\t\t\t\t?.filter((e) => !!e?.cardId)\r\n\t\t\t\t// If Bassgill summons it, it can't be resummoned\r\n\t\t\t\t// https://replays.firestoneapp.com/?reviewId=0422ad36-87f4-44f0-9020-073116b51d2e&turn=13&action=4\r\n\t\t\t\t// and confirmed by the devs\r\n\t\t\t\t.filter((e) => !e.locked) ?? [];\r\n\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\tconst highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;\r\n\t\tconst candidate = !!highestHealthMinions?.length\r\n\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t: null;\r\n\t\tif (!candidate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tcandidate.locked = true;\r\n\t\tconst spawns = spawnEntities(\r\n\t\t\tcandidate.cardId,\r\n\t\t\t1,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherHero,\r\n\t\t\tinput.gameState,\r\n\t\t\tinput.hero.friendly,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\ttrue,\r\n\t\t\t{ ...candidate } as BoardEntity,\r\n\t\t);\r\n\t\tperformEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.hero,\r\n\t\t\t0,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\ttrinket.scriptDataNum1--;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"crocheted-sungill.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/crocheted-sungill.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AAErD,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,gBAAgB,GAAgD;IAC5E,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;;QACjE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAC1D,OAAO;SACP;QACD,MAAM,IAAI,GACT,MAAA,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,0CACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,EAI1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,MAAM,SAAS,GAAG,CAAC,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,CAAA;YAC/C,CAAC,CAAC,IAAA,kBAAU,EAAC,oBAAoB,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;gBACrC,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC;QACR,IAAI,CAAC,SAAS,EAAE;YACf,OAAO;SACP;QACD,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,IAAA,kCAAa,EAC3B,SAAS,CAAC,MAAM,EAChB,CAAC,EACD,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,CAAC,QAAQ,EACnB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,SAAS,EAAiB,CAC/B,CAAC;QACF,IAAA,4BAAmB,EAClB,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,CAAC,EACD,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAfterDeathInput } from '../../../simulation/attack';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { DefaultScriptDataNumCard, OnAfterDeathCard } from '../../card.interface';\r\n\r\nexport const CrochetedSungill: OnAfterDeathCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.CrochetedSungill_BG32_MagicItem_960],\r\n\tdefaultScriptDataNum: (cardId: string) => 1,\r\n\tonAfterDeath: (trinket: BoardTrinket, input: OnAfterDeathInput) => {\r\n\t\tif (input.board.length > 0 || trinket.scriptDataNum1 <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst hand =\r\n\t\t\tinput.hero.hand\r\n\t\t\t\t?.filter((e) => !!e?.cardId)\r\n\t\t\t\t// If Bassgill summons it, it can't be resummoned\r\n\t\t\t\t// https://replays.firestoneapp.com/?reviewId=0422ad36-87f4-44f0-9020-073116b51d2e&turn=13&action=4\r\n\t\t\t\t// and confirmed by the devs\r\n\t\t\t\t.filter((e) => !e.locked) ?? [];\r\n\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\tconst highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;\r\n\t\tconst candidate = !!highestHealthMinions?.length\r\n\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t: null;\r\n\t\tif (!candidate) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tcandidate.locked = true;\r\n\t\tconst spawns = spawnEntities(\r\n\t\t\tcandidate.cardId,\r\n\t\t\t1,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherHero,\r\n\t\t\tinput.gameState,\r\n\t\t\tinput.hero.friendly,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\ttrue,\r\n\t\t\t{ ...candidate } as BoardEntity,\r\n\t\t);\r\n\t\tperformEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.hero,\r\n\t\t\t0,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\ttrinket.scriptDataNum1--;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterRebornCard } from '../../card.interface';
2
+ export declare const DeathwhisperSticker: AfterRebornCard;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeathwhisperSticker = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ const buff = 2;
6
+ exports.DeathwhisperSticker = {
7
+ cardIds: ["BG36_MagicItem_205"],
8
+ afterReborn: (trinket, input) => {
9
+ (0, utils_1.addStatsToBoard)(input.boardWithKilledMinionHero, input.boardWithKilledMinion, input.boardWithKilledMinionHero, buff, buff, input.gameState);
10
+ },
11
+ };
12
+ //# sourceMappingURL=deathwhisper-sticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deathwhisper-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/deathwhisper-sticker.ts"],"names":[],"mappings":";;;AAMA,0CAAiD;AAIjD,MAAM,IAAI,GAAG,CAAC,CAAC;AAEF,QAAA,mBAAmB,GAAoB;IACnD,OAAO,EAAE,sBAAgD;IACzD,WAAW,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;QAChE,IAAA,uBAAe,EACd,KAAK,CAAC,yBAAyB,EAC/B,KAAK,CAAC,qBAAqB,EAC3B,KAAK,CAAC,yBAAyB,EAC/B,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Deathwhisper Sticker (2 gold)\r\n * After a friendly minion is Reborn, give your minions +2/+2.\r\n */\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { RebornEffectInput } from '../../../simulation/reborn';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AfterRebornCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst buff = 2;\r\n\r\nexport const DeathwhisperSticker: AfterRebornCard = {\r\n\tcardIds: [CardIds.DeathwhisperSticker_BG36_MagicItem_205],\r\n\tafterReborn: (trinket: BoardTrinket, input: RebornEffectInput) => {\r\n\t\taddStatsToBoard(\r\n\t\t\tinput.boardWithKilledMinionHero,\r\n\t\t\tinput.boardWithKilledMinion,\r\n\t\t\tinput.boardWithKilledMinionHero,\r\n\t\t\tbuff,\r\n\t\t\tbuff,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnBattlecryTriggeredCard } from '../../card.interface';
2
+ export declare const DragonSkull: OnBattlecryTriggeredCard;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DragonSkull = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ const buff = 3;
6
+ exports.DragonSkull = {
7
+ cardIds: ["BG36_MagicItem_203"],
8
+ onBattlecryTriggered: (trinket, input) => {
9
+ const targets = [input.board[0], input.board[input.board.length - 1]].filter((e) => !!e);
10
+ for (const target of new Set(targets)) {
11
+ (0, stats_1.modifyStats)(target, trinket, buff, buff, input.board, input.hero, input.gameState);
12
+ }
13
+ },
14
+ };
15
+ //# sourceMappingURL=dragon-skull.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragon-skull.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/dragon-skull.ts"],"names":[],"mappings":";;;AAMA,qDAAwD;AAIxD,MAAM,IAAI,GAAG,CAAC,CAAC;AAEF,QAAA,WAAW,GAA6B;IACpD,OAAO,EAAE,sBAAwC;IACjD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACjF,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzF,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;YACtC,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnF;IACF,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Dragon Skull (2 gold)\r\n * Whenever you trigger a Battlecry, give your left- and right-most minions +3/+3.\r\n */\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { OnBattlecryTriggeredInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnBattlecryTriggeredCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst buff = 3;\r\n\r\nexport const DragonSkull: OnBattlecryTriggeredCard = {\r\n\tcardIds: [CardIds.DragonSkull_BG36_MagicItem_203],\r\n\tonBattlecryTriggered: (trinket: BoardTrinket, input: OnBattlecryTriggeredInput) => {\r\n\t\tconst targets = [input.board[0], input.board[input.board.length - 1]].filter((e) => !!e);\r\n\t\t// Left- and right-most are the same minion when there is only one on the board\r\n\t\tfor (const target of new Set(targets)) {\r\n\t\t\tmodifyStats(target, trinket, buff, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,4 @@
1
+ import { BgsPlayerEntity } from '../../../bgs-player-entity';
2
+ import { BoardEntity } from '../../../board-entity';
3
+ import { FullGameState } from '../../../simulation/internal-game-state';
4
+ export declare const dragonsEyeExtraBattlecryTriggers: (entity: BoardEntity, hero: BgsPlayerEntity, gameState: FullGameState) => number;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dragonsEyeExtraBattlecryTriggers = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../utils");
6
+ const dragonsEyeExtraBattlecryTriggers = (entity, hero, gameState) => {
7
+ var _a;
8
+ if (!entity || !(0, utils_1.hasCorrectTribe)(entity, hero, reference_data_1.Race.DRAGON, gameState.anomalies, gameState.allCards)) {
9
+ return 0;
10
+ }
11
+ return ((_a = hero.trinkets) !== null && _a !== void 0 ? _a : []).filter((t) => t.cardId === "BG36_MagicItem_215").length;
12
+ };
13
+ exports.dragonsEyeExtraBattlecryTriggers = dragonsEyeExtraBattlecryTriggers;
14
+ //# sourceMappingURL=dragons-eye.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dragons-eye.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/dragons-eye.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,0CAAiD;AAG1C,MAAM,gCAAgC,GAAG,CAC/C,MAAmB,EACnB,IAAqB,EACrB,SAAwB,EACf,EAAE;;IACX,IAAI,CAAC,MAAM,IAAI,CAAC,IAAA,uBAAe,EAAC,MAAM,EAAE,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;QACpG,OAAO,CAAC,CAAC;KACT;IACD,OAAO,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAA0C,CAAC,CAAC,MAAM,CAAC;AACvG,CAAC,CAAC;AATW,QAAA,gCAAgC,oCAS3C","sourcesContent":["/**\r\n * Dragon's Eye (4 gold)\r\n * Your Dragons' Battlecries trigger an extra time.\r\n *\r\n * The battlecry trigger count is computed centrally in `battlecries.ts`, which calls\r\n * `dragonsEyeExtraBattlecryTriggers` to add this trinket's contribution.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nexport const dragonsEyeExtraBattlecryTriggers = (\r\n\tentity: BoardEntity,\r\n\thero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): number => {\r\n\tif (!entity || !hasCorrectTribe(entity, hero, Race.DRAGON, gameState.anomalies, gameState.allCards)) {\r\n\t\treturn 0;\r\n\t}\r\n\treturn (hero.trinkets ?? []).filter((t) => t.cardId === CardIds.DragonsEye_BG36_MagicItem_215).length;\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"eclectic-shrine.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/eclectic-shrine.ts"],"names":[],"mappings":";;;AACA,iEAAkE;AAGlE,qDAAwD;AACxD,0CAA6D;AAE7D,2DAA0D;AAE7C,QAAA,cAAc,GAAsB;IAChD,mBAAmB,EAAE,YAAY;IACjC,OAAO,EAAE,sBAA2C;IACpD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,IAAA,mCAA2B,EAC5B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CAAC,MAAM,CACT,CAAC;YACF,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE;;gBACL,OAAA,CAAC,CAAA,MAAA,IAAA,mCAA2B,EAC3B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,0CAAE,QAAQ,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAA,CAAA;aAAA,CACtB,CAAC;YACF,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,eAAe,EAAE,6BAAY,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC/F,MAAM,UAAU,GAAG;gBAClB,GAAG,eAAe;gBAClB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;oBAC/B,OAAA,MAAA,IAAA,mCAA2B,EAC1B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,0CAAE,QAAQ,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAA;iBAAA,CACrB;aACD,CAAC;YACF,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxB,IAAA,mBAAW,EAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { ALL_BG_RACES, Race } from '@firestone-hs/reference-data';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getEffectiveTribesForEntity } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\nimport { selectMinions } from '../hero-power/wax-warband';\r\n\r\nexport const EclecticShrine: StartOfCombatCard = {\r\n\tstartOfCombatTiming: 'pre-combat',\r\n\tcardIds: [CardIds.EclecticShrine_BG32_MagicItem_280],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst boardWithTribes = input.playerBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t).length,\r\n\t\t\t);\r\n\t\t\tconst boardWithoutAll = boardWithTribes.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t);\r\n\t\t\tconst selectedMinions = selectMinions(boardWithoutAll, ALL_BG_RACES, input.gameState.allCards);\r\n\t\t\tconst allMinions = [\r\n\t\t\t\t...selectedMinions,\r\n\t\t\t\t...boardWithTribes.filter((e) =>\r\n\t\t\t\t\tgetEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t\t),\r\n\t\t\t];\r\n\t\t\tconst atk = trinket.scriptDataNum1 ?? 3;\r\n\t\t\tconst health = trinket.scriptDataNum2 ?? 2;\r\n\t\t\tallMinions.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, trinket, atk, health, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t});\r\n\t\t\ttrinket.scriptDataNum1++;\r\n\t\t\ttrinket.scriptDataNum2++;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"eclectic-shrine.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/eclectic-shrine.ts"],"names":[],"mappings":";;;AACA,iEAAkE;AAGlE,qDAAwD;AACxD,0CAA6D;AAE7D,2DAA0D;AAE7C,QAAA,cAAc,GAAsB;IAChD,mBAAmB,EAAE,YAAY;IACjC,OAAO,EAAE,sBAA2C;IACpD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,IAAA,mCAA2B,EAC5B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CAAC,MAAM,CACT,CAAC;YACF,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE;;gBACL,OAAA,CAAC,CAAA,MAAA,IAAA,mCAA2B,EAC3B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,0CAAE,QAAQ,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAA,CAAA;aAAA,CACtB,CAAC;YACF,MAAM,eAAe,GAAG,IAAA,2BAAa,EAAC,eAAe,EAAE,6BAAY,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC/F,MAAM,UAAU,GAAG;gBAClB,GAAG,eAAe;gBAClB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;oBAC/B,OAAA,MAAA,IAAA,mCAA2B,EAC1B,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,0CAAE,QAAQ,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAA;iBAAA,CACrB;aACD,CAAC;YACF,MAAM,GAAG,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxB,IAAA,mBAAW,EAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { ALL_BG_RACES, Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getEffectiveTribesForEntity } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\nimport { selectMinions } from '../hero-power/wax-warband';\r\n\r\nexport const EclecticShrine: StartOfCombatCard = {\r\n\tstartOfCombatTiming: 'pre-combat',\r\n\tcardIds: [CardIds.EclecticShrine_BG32_MagicItem_280],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst boardWithTribes = input.playerBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t).length,\r\n\t\t\t);\r\n\t\t\tconst boardWithoutAll = boardWithTribes.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t);\r\n\t\t\tconst selectedMinions = selectMinions(boardWithoutAll, ALL_BG_RACES, input.gameState.allCards);\r\n\t\t\tconst allMinions = [\r\n\t\t\t\t...selectedMinions,\r\n\t\t\t\t...boardWithTribes.filter((e) =>\r\n\t\t\t\t\tgetEffectiveTribesForEntity(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t\t),\r\n\t\t\t];\r\n\t\t\tconst atk = trinket.scriptDataNum1 ?? 3;\r\n\t\t\tconst health = trinket.scriptDataNum2 ?? 2;\r\n\t\t\tallMinions.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, trinket, atk, health, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t});\r\n\t\t\ttrinket.scriptDataNum1++;\r\n\t\t\ttrinket.scriptDataNum2++;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1,9 +1,11 @@
1
1
  import { BoardTrinket } from '../../../bgs-player-entity';
2
2
  import { CardIds } from '../../../services/card-ids';
3
3
  import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
4
+ import { OnAfterFriendlyMinionDeathCard } from '../../card.interface';
4
5
  export declare const eternalKnightAttack = 4;
5
6
  export declare const eternalKnightHealth = 2;
6
7
  export declare const eternalKnightCards: CardIds[];
7
8
  export declare const EternalPortrait: {
8
9
  startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
9
10
  };
11
+ export declare const EternalPortraitBg36: OnAfterFriendlyMinionDeathCard;
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EternalPortrait = exports.eternalKnightCards = exports.eternalKnightHealth = exports.eternalKnightAttack = void 0;
3
+ exports.EternalPortraitBg36 = exports.EternalPortrait = exports.eternalKnightCards = exports.eternalKnightHealth = exports.eternalKnightAttack = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
4
5
  const reborn_1 = require("../../../keywords/reborn");
5
6
  const taunt_1 = require("../../../keywords/taunt");
7
+ const stats_1 = require("../../../simulation/stats");
8
+ const utils_1 = require("../../../utils");
6
9
  exports.eternalKnightAttack = 4;
7
10
  exports.eternalKnightHealth = 2;
8
11
  exports.eternalKnightCards = ["BG25_008", "BG25_008_G"];
@@ -21,4 +24,26 @@ exports.EternalPortrait = {
21
24
  }
22
25
  },
23
26
  };
27
+ const portraitAttackBuff = 4;
28
+ const portraitHealthBuff = 2;
29
+ exports.EternalPortraitBg36 = {
30
+ cardIds: ["BG36_MagicItem_216"],
31
+ onAfterFriendlyMinionDeath: (trinket, input) => {
32
+ var _a;
33
+ if (!(0, utils_1.hasCorrectTribe)(input.deadEntity, input.hero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)) {
34
+ return;
35
+ }
36
+ input.hero.globalInfo.EternalKnightAttackBuff += portraitAttackBuff;
37
+ input.hero.globalInfo.EternalKnightHealthBuff += portraitHealthBuff;
38
+ for (const knight of input.board.filter((e) => exports.eternalKnightCards.includes(e.cardId))) {
39
+ (0, stats_1.modifyStats)(knight, trinket, portraitAttackBuff, portraitHealthBuff, input.board, input.hero, input.gameState);
40
+ }
41
+ for (const knight of ((_a = input.hero.hand) !== null && _a !== void 0 ? _a : []).filter((e) => exports.eternalKnightCards.includes(e.cardId))) {
42
+ knight.attack += portraitAttackBuff;
43
+ knight.maxAttack += portraitAttackBuff;
44
+ knight.health += portraitHealthBuff;
45
+ knight.maxHealth += portraitHealthBuff;
46
+ }
47
+ },
48
+ };
24
49
  //# sourceMappingURL=eternal-portrait.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eternal-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/eternal-portrait.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,mDAAsD;AAIzC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,kBAAkB,GAAG,0BAAkE,CAAC;AAExF,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAmC,IAAI,CAAC,CAAC,MAAM,iBAAqC,CAAC;aAC3G,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxG,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,IAAI,EACJ,IAAI,CACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const eternalKnightAttack = 4;\r\nexport const eternalKnightHealth = 2;\r\nexport const eternalKnightCards = [CardIds.EternalKnight_BG25_008, CardIds.EternalKnight_BG25_008_G];\r\n\r\nexport const EternalPortrait = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst candidates = input.playerBoard\r\n\t\t\t.filter((e) => e.cardId === CardIds.EternalKnight_BG25_008 || e.cardId === CardIds.EternalKnight_BG25_008_G)\r\n\t\t\t.filter((e) => !e.taunt || !e.reborn);\r\n\t\tif (candidates?.length) {\r\n\t\t\tcandidates.forEach((knight) => {\r\n\t\t\t\tupdateTaunt(knight, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\tknight,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tknight,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"eternal-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/eternal-portrait.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,mDAAsD;AAItD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,kBAAkB,GAAG,0BAAkE,CAAC;AAExF,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAmC,IAAI,CAAC,CAAC,MAAM,iBAAqC,CAAC;aAC3G,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACxG,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,IAAI,EACJ,IAAI,CACJ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC;AASF,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEhB,QAAA,mBAAmB,GAAmC;IAClE,OAAO,EAAE,sBAA4C;IACrD,0BAA0B,EAAE,CAAC,OAAqB,EAAE,KAAsC,EAAE,EAAE;;QAC7F,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO;SACP;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,IAAI,kBAAkB,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,IAAI,kBAAkB,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,EAAE;YACjG,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,KAAK,MAAM,MAAM,IAAI,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,EAAE;YAC7G,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC;YACpC,MAAM,CAAC,SAAS,IAAI,kBAAkB,CAAC;YACvC,MAAM,CAAC,MAAM,IAAI,kBAAkB,CAAC;YACpC,MAAM,CAAC,SAAS,IAAI,kBAAkB,CAAC;SACvC;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const eternalKnightAttack = 4;\r\nexport const eternalKnightHealth = 2;\r\nexport const eternalKnightCards = [CardIds.EternalKnight_BG25_008, CardIds.EternalKnight_BG25_008_G];\r\n\r\nexport const EternalPortrait = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst candidates = input.playerBoard\r\n\t\t\t.filter((e) => e.cardId === CardIds.EternalKnight_BG25_008 || e.cardId === CardIds.EternalKnight_BG25_008_G)\r\n\t\t\t.filter((e) => !e.taunt || !e.reborn);\r\n\t\tif (candidates?.length) {\r\n\t\t\tcandidates.forEach((knight) => {\r\n\t\t\t\tupdateTaunt(knight, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\tknight,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tknight,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n\r\n/**\r\n * Eternal Portrait (BG36, 4 gold)\r\n * Get a Golden Eternal Knight. After a friendly Undead dies, your Eternal Knights have +4/+2 this game.\r\n *\r\n * The buff is flat, so it can't ride on EternalKnightsDeadThisGame, which is doubled for golden knights.\r\n * It gets its own globals instead, which also carry the total over from the previous combats.\r\n */\r\nconst portraitAttackBuff = 4;\r\nconst portraitHealthBuff = 2;\r\n\r\nexport const EternalPortraitBg36: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.EternalPortrait_BG36_MagicItem_216],\r\n\tonAfterFriendlyMinionDeath: (trinket: BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.deadEntity,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.UNDEAD,\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\r\n\t\tinput.hero.globalInfo.EternalKnightAttackBuff += portraitAttackBuff;\r\n\t\tinput.hero.globalInfo.EternalKnightHealthBuff += portraitHealthBuff;\r\n\t\tfor (const knight of input.board.filter((e) => eternalKnightCards.includes(e.cardId as CardIds))) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tknight,\r\n\t\t\t\ttrinket,\r\n\t\t\t\tportraitAttackBuff,\r\n\t\t\t\tportraitHealthBuff,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tfor (const knight of (input.hero.hand ?? []).filter((e) => eternalKnightCards.includes(e.cardId as CardIds))) {\r\n\t\t\tknight.attack += portraitAttackBuff;\r\n\t\t\tknight.maxAttack += portraitAttackBuff;\r\n\t\t\tknight.health += portraitHealthBuff;\r\n\t\t\tknight.maxHealth += portraitHealthBuff;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"faerie-dragon-scale.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/faerie-dragon-scale.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,iBAAiB,GAAkE;IAC/F,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,8BAA8B,EAAE,CAC/B,OAAqB,EACrB,KAAoB,EACuC,EAAE;QAC7D,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE;YAC/B,IACC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY;gBAC5B,IAAA,uBAAe,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,kCAAkB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE,CAAC;aACzB;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultScriptDataNumCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const FaerieDragonScale: OnWheneverAnotherMinionAttacksCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.FaerieDragonScale_BG32_MagicItem_363],\r\n\tdefaultScriptDataNum: (cardId: string) => 3,\r\n\tonWheneverAnotherMinionAttacks: (\r\n\t\ttrinket: BoardTrinket,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (trinket.scriptDataNum1 > 0) {\r\n\t\t\tif (\r\n\t\t\t\t!input.attacker.divineShield &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttrinket.scriptDataNum1--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"faerie-dragon-scale.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/faerie-dragon-scale.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,iBAAiB,GAAkE;IAC/F,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,8BAA8B,EAAE,CAC/B,OAAqB,EACrB,KAAoB,EACuC,EAAE;QAC7D,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE;YAC/B,IACC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY;gBAC5B,IAAA,uBAAe,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,kCAAkB,EACjB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE,CAAC;aACzB;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultScriptDataNumCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const FaerieDragonScale: OnWheneverAnotherMinionAttacksCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.FaerieDragonScale_BG32_MagicItem_363],\r\n\tdefaultScriptDataNum: (cardId: string) => 3,\r\n\tonWheneverAnotherMinionAttacks: (\r\n\t\ttrinket: BoardTrinket,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (trinket.scriptDataNum1 > 0) {\r\n\t\t\tif (\r\n\t\t\t\t!input.attacker.divineShield &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttrinket.scriptDataNum1--;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fishy-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/fishy-sticker.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,OAAO,GACZ,OAAO,CAAC,MAAM,yBAA4C;gBACzD,CAAC;gBACD,CAAC,kBAAoB,CAAC;YACxB,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,OAAO,EACP,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const FishySticker = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst spawnId =\r\n\t\t\t\ttrinket.cardId === CardIds.FishySticker_BG30_MagicItem_821\r\n\t\t\t\t\t? CardIds.AvatarOfNzoth_FishOfNzothToken\r\n\t\t\t\t\t: CardIds.FishOfNzoth;\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tspawnId,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\tfalse,\r\n\t\t\t);\r\n\t\t\tconst spawns = performEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"fishy-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/fishy-sticker.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,OAAO,GACZ,OAAO,CAAC,MAAM,yBAA4C;gBACzD,CAAC;gBACD,CAAC,kBAAoB,CAAC;YACxB,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,OAAO,EACP,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const FishySticker = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst spawnId =\r\n\t\t\t\ttrinket.cardId === CardIds.FishySticker_BG30_MagicItem_821\r\n\t\t\t\t\t? CardIds.AvatarOfNzoth_FishOfNzothToken\r\n\t\t\t\t\t: CardIds.FishOfNzoth;\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tspawnId,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\tfalse,\r\n\t\t\t);\r\n\t\t\tconst spawns = performEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnTavernSpellCastCard } from '../../card.interface';
2
+ export declare const FlightyPortrait: OnTavernSpellCastCard;