@firestone-hs/simulate-bgs-battle 1.1.730 → 1.1.732

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 (223) hide show
  1. package/dist/bgs-battle-options.d.ts +1 -0
  2. package/dist/bgs-battle-options.js.map +1 -1
  3. package/dist/bgs-player-entity.d.ts +1 -0
  4. package/dist/bgs-player-entity.js.map +1 -1
  5. package/dist/cards/impl/_card-mappings.js +82 -74
  6. package/dist/cards/impl/_card-mappings.js.map +1 -1
  7. package/dist/cards/impl/bg-spell/sharing-is-caring.js.map +1 -1
  8. package/dist/cards/impl/bg-spell/toxic-tumbleweed.js.map +1 -1
  9. package/dist/cards/impl/hero-power/aim-high.js.map +1 -1
  10. package/dist/cards/impl/hero-power/aim-left.js.map +1 -1
  11. package/dist/cards/impl/hero-power/aim-low.js.map +1 -1
  12. package/dist/cards/impl/hero-power/aim-right.js.map +1 -1
  13. package/dist/cards/impl/hero-power/avatar-of-nzoth.d.ts +2 -0
  14. package/dist/cards/impl/hero-power/avatar-of-nzoth.js +22 -0
  15. package/dist/cards/impl/hero-power/avatar-of-nzoth.js.map +1 -0
  16. package/dist/cards/impl/hero-power/earth-invocation.js.map +1 -1
  17. package/dist/cards/impl/hero-power/embrace-your-rage.js.map +1 -1
  18. package/dist/cards/impl/hero-power/fire-invocation.js.map +1 -1
  19. package/dist/cards/impl/hero-power/reborn-rites.js.map +1 -1
  20. package/dist/cards/impl/hero-power/water-invocation.js.map +1 -1
  21. package/dist/cards/impl/minion/all-seeing-elder.js.map +1 -1
  22. package/dist/cards/impl/minion/alleycat.js.map +1 -1
  23. package/dist/cards/impl/minion/amber-guardian.js.map +1 -1
  24. package/dist/cards/impl/minion/archimonde.js.map +1 -1
  25. package/dist/cards/impl/minion/arid-atrocity.js.map +1 -1
  26. package/dist/cards/impl/minion/ashen-corruptor.js.map +1 -1
  27. package/dist/cards/impl/minion/assistant-guard.js.map +1 -1
  28. package/dist/cards/impl/minion/audacious-anchor.js.map +1 -1
  29. package/dist/cards/impl/minion/auto-assembler-enchantment.js +1 -6
  30. package/dist/cards/impl/minion/auto-assembler-enchantment.js.map +1 -1
  31. package/dist/cards/impl/minion/auto-assembler.js.map +1 -1
  32. package/dist/cards/impl/minion/avalanche-caller.js.map +1 -1
  33. package/dist/cards/impl/minion/baneling.js.map +1 -1
  34. package/dist/cards/impl/minion/bigwig-bandit.js.map +1 -1
  35. package/dist/cards/impl/minion/bird-buddy.js.map +1 -1
  36. package/dist/cards/impl/minion/blazing-skyfin.js.map +1 -1
  37. package/dist/cards/impl/minion/blue-whelp.js.map +1 -1
  38. package/dist/cards/impl/minion/boar-gamer.js.map +1 -1
  39. package/dist/cards/impl/minion/briarback-bookie.js.map +1 -1
  40. package/dist/cards/impl/minion/bronze-steward.js.map +1 -1
  41. package/dist/cards/impl/minion/bubble-gunner.js.map +1 -1
  42. package/dist/cards/impl/minion/buzzing-vermin.js.map +1 -1
  43. package/dist/cards/impl/minion/cadaver-caretaker.js.map +1 -1
  44. package/dist/cards/impl/minion/captain-bonerender.js.map +1 -1
  45. package/dist/cards/impl/minion/carapace-raiser.js.map +1 -1
  46. package/dist/cards/impl/minion/carbonic-copy.js.map +1 -1
  47. package/dist/cards/impl/minion/choral-mrrrglr.js +1 -1
  48. package/dist/cards/impl/minion/choral-mrrrglr.js.map +1 -1
  49. package/dist/cards/impl/minion/coilskar-sapper.js.map +1 -1
  50. package/dist/cards/impl/minion/coldlight-diver.js.map +1 -1
  51. package/dist/cards/impl/minion/crystal-infuser-enchantment.js.map +1 -1
  52. package/dist/cards/impl/minion/cupcake-peddler.js.map +1 -1
  53. package/dist/cards/impl/minion/deadstomper.js.map +1 -1
  54. package/dist/cards/impl/minion/deathly-striker.js.map +1 -1
  55. package/dist/cards/impl/minion/deflecto-bot.js.map +1 -1
  56. package/dist/cards/impl/minion/devout-hellcaller.js.map +1 -1
  57. package/dist/cards/impl/minion/drakkari-embalmer.js.map +1 -1
  58. package/dist/cards/impl/minion/electric-synthesizer.js.map +1 -1
  59. package/dist/cards/impl/minion/elite-navigator.js.map +1 -1
  60. package/dist/cards/impl/minion/fairy-gillmother.js.map +1 -1
  61. package/dist/cards/impl/minion/firescale-hoarder.js.map +1 -1
  62. package/dist/cards/impl/minion/fireworks-fanatic.js.map +1 -1
  63. package/dist/cards/impl/minion/flotsam-flinger.js.map +1 -1
  64. package/dist/cards/impl/minion/fountain-chiller.js.map +1 -1
  65. package/dist/cards/impl/minion/friendly-geist.js.map +1 -1
  66. package/dist/cards/impl/minion/gem-rat.js.map +1 -1
  67. package/dist/cards/impl/minion/general-drakkisath.js.map +1 -1
  68. package/dist/cards/impl/minion/gentle-djinni.js.map +1 -1
  69. package/dist/cards/impl/minion/gentle-stag.js.map +1 -1
  70. package/dist/cards/impl/minion/glim-guardian.d.ts +2 -0
  71. package/dist/cards/impl/minion/glim-guardian.js +13 -0
  72. package/dist/cards/impl/minion/glim-guardian.js.map +1 -0
  73. package/dist/cards/impl/minion/gormling-gourmet.js.map +1 -1
  74. package/dist/cards/impl/minion/greedy-snaketongue.js.map +1 -1
  75. package/dist/cards/impl/minion/grimscale-elegist.js.map +1 -1
  76. package/dist/cards/impl/minion/gritty-headhunter.js.map +1 -1
  77. package/dist/cards/impl/minion/hackerfin.js.map +1 -1
  78. package/dist/cards/impl/minion/handless-forsaken.js.map +1 -1
  79. package/dist/cards/impl/minion/harmless-bonehead.js.map +1 -1
  80. package/dist/cards/impl/minion/hawkstrider-herald.js.map +1 -1
  81. package/dist/cards/impl/minion/holo-rover.js.map +1 -1
  82. package/dist/cards/impl/minion/humongozz.js.map +1 -1
  83. package/dist/cards/impl/minion/hungry-snapjaw.js.map +1 -1
  84. package/dist/cards/impl/minion/hunter-of-gatherers.js.map +1 -1
  85. package/dist/cards/impl/minion/icesnarl-the-mighty.js +3 -1
  86. package/dist/cards/impl/minion/icesnarl-the-mighty.js.map +1 -1
  87. package/dist/cards/impl/minion/ignition-specialist.js.map +1 -1
  88. package/dist/cards/impl/minion/immortal.js.map +1 -1
  89. package/dist/cards/impl/minion/implant-subject.js.map +1 -1
  90. package/dist/cards/impl/minion/imposing-percussionist.js.map +1 -1
  91. package/dist/cards/impl/minion/inspiring-underdog.js.map +1 -1
  92. package/dist/cards/impl/minion/interrogator-whitemane.js.map +1 -1
  93. package/dist/cards/impl/minion/jailbird-juggernaut.js +7 -10
  94. package/dist/cards/impl/minion/jailbird-juggernaut.js.map +1 -1
  95. package/dist/cards/impl/minion/kangors-apprentice.js.map +1 -1
  96. package/dist/cards/impl/minion/leeroy-the-reckless.js.map +1 -1
  97. package/dist/cards/impl/minion/lightfang-enforcer.js.map +1 -1
  98. package/dist/cards/impl/minion/lightfeather-screecher.js.map +1 -1
  99. package/dist/cards/impl/minion/living-azerite.js.map +1 -1
  100. package/dist/cards/impl/minion/lokholar-frostforger.js.map +1 -1
  101. package/dist/cards/impl/minion/lovesick-balladist.js.map +1 -1
  102. package/dist/cards/impl/minion/low-flier.js.map +1 -1
  103. package/dist/cards/impl/minion/lurker.js.map +1 -1
  104. package/dist/cards/impl/minion/manasaber.js.map +1 -1
  105. package/dist/cards/impl/minion/mantid-queen.js.map +1 -1
  106. package/dist/cards/impl/minion/maritime-extortionist.d.ts +2 -0
  107. package/dist/cards/impl/minion/maritime-extortionist.js +33 -0
  108. package/dist/cards/impl/minion/maritime-extortionist.js.map +1 -0
  109. package/dist/cards/impl/minion/marquee-ticker.js.map +1 -1
  110. package/dist/cards/impl/minion/maw-caster.js.map +1 -1
  111. package/dist/cards/impl/minion/mecha-jaraxxus.js.map +1 -1
  112. package/dist/cards/impl/minion/mechanized-gift-horse.js.map +1 -1
  113. package/dist/cards/impl/minion/mechorse.js.map +1 -1
  114. package/dist/cards/impl/minion/menagerie-jug.js.map +1 -1
  115. package/dist/cards/impl/minion/metallic-hunter.js.map +1 -1
  116. package/dist/cards/impl/minion/misfit-dragonling.js.map +1 -1
  117. package/dist/cards/impl/minion/murkbrine-expeditioner.js.map +1 -1
  118. package/dist/cards/impl/minion/murky.js.map +1 -1
  119. package/dist/cards/impl/minion/mutated-lasher.js.map +1 -1
  120. package/dist/cards/impl/minion/mythrax.js.map +1 -1
  121. package/dist/cards/impl/minion/neon-agent.js.map +1 -1
  122. package/dist/cards/impl/minion/nest-swarmer.js.map +1 -1
  123. package/dist/cards/impl/minion/nether-drake.js.map +1 -1
  124. package/dist/cards/impl/minion/nightmare-par-tea-guest.js.map +1 -1
  125. package/dist/cards/impl/minion/nimble-hatchling.js.map +1 -1
  126. package/dist/cards/impl/minion/operatic-belcher.js.map +1 -1
  127. package/dist/cards/impl/minion/outback-smolderer.js.map +1 -1
  128. package/dist/cards/impl/minion/parched-wanderer.js.map +1 -1
  129. package/dist/cards/impl/minion/primalfin-lookout.js.map +1 -1
  130. package/dist/cards/impl/minion/rapscallion-recruiter.js.map +1 -1
  131. package/dist/cards/impl/minion/razorgore-the-untamed.js.map +1 -1
  132. package/dist/cards/impl/minion/roach.js.map +1 -1
  133. package/dist/cards/impl/minion/roadboar.js.map +1 -1
  134. package/dist/cards/impl/minion/rodeo-performer.js.map +1 -1
  135. package/dist/cards/impl/minion/ruins-renovator.js.map +1 -1
  136. package/dist/cards/impl/minion/rylak-metalhead.js.map +1 -1
  137. package/dist/cards/impl/minion/salty-hog.js.map +1 -1
  138. package/dist/cards/impl/minion/sand-swirler.js.map +1 -1
  139. package/dist/cards/impl/minion/sandy.js.map +1 -1
  140. package/dist/cards/impl/minion/scourge-harvester.js.map +1 -1
  141. package/dist/cards/impl/minion/selfless-hero.js.map +1 -1
  142. package/dist/cards/impl/minion/shadowdancer.js.map +1 -1
  143. package/dist/cards/impl/minion/sharp-eyed-sabretooth.js.map +1 -1
  144. package/dist/cards/impl/minion/sharptooth-snapper.js.map +1 -1
  145. package/dist/cards/impl/minion/ship-master-eudora.js.map +1 -1
  146. package/dist/cards/impl/minion/shipwrecked-rascal.js.map +1 -1
  147. package/dist/cards/impl/minion/silver-handed-recruit.js.map +1 -1
  148. package/dist/cards/impl/minion/slumber-sorcerer.js.map +1 -1
  149. package/dist/cards/impl/minion/smolderwing.js.map +1 -1
  150. package/dist/cards/impl/minion/soul-rewinder.js.map +1 -1
  151. package/dist/cards/impl/minion/spacefarer.js.map +1 -1
  152. package/dist/cards/impl/minion/spirited-whimsydrake.js.map +1 -1
  153. package/dist/cards/impl/minion/springy-spriggan.js.map +1 -1
  154. package/dist/cards/impl/minion/stitched-salvager.js.map +1 -1
  155. package/dist/cards/impl/minion/stray-satyr.js.map +1 -1
  156. package/dist/cards/impl/minion/sun-screener.js.map +1 -1
  157. package/dist/cards/impl/minion/surfing-slyvar.js.map +1 -1
  158. package/dist/cards/impl/minion/tasty-lobster.js +29 -3
  159. package/dist/cards/impl/minion/tasty-lobster.js.map +1 -1
  160. package/dist/cards/impl/minion/thorncaller.js.map +1 -1
  161. package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -1
  162. package/dist/cards/impl/minion/thundering-abomination.js.map +1 -1
  163. package/dist/cards/impl/minion/timewarped-mrrrglr.js +1 -1
  164. package/dist/cards/impl/minion/timewarped-mrrrglr.js.map +1 -1
  165. package/dist/cards/impl/minion/timewarped-warghoul.js.map +1 -1
  166. package/dist/cards/impl/minion/tunnel-blaster.js.map +1 -1
  167. package/dist/cards/impl/minion/twilight-primordium.js.map +1 -1
  168. package/dist/cards/impl/minion/ultralisk.js.map +1 -1
  169. package/dist/cards/impl/minion/valiant-tiger.js.map +1 -1
  170. package/dist/cards/impl/minion/void-earl.js.map +1 -1
  171. package/dist/cards/impl/minion/vorkai-guardian.js.map +1 -1
  172. package/dist/cards/impl/minion/wandering-wight.js.map +1 -1
  173. package/dist/cards/impl/minion/whelp-smuggler.js.map +1 -1
  174. package/dist/cards/impl/minion/whirring-protector-enchantment.js.map +1 -1
  175. package/dist/cards/impl/minion/wildfire-elemental.js.map +1 -1
  176. package/dist/cards/impl/minion/wisp-in-the-shell.js.map +1 -1
  177. package/dist/cards/impl/minion/yorik-smite.js.map +1 -1
  178. package/dist/cards/impl/minion/yrel.js.map +1 -1
  179. package/dist/cards/impl/minion/yulon-fortune-granter.js.map +1 -1
  180. package/dist/cards/impl/quest-reward/righteous-charge.js.map +1 -1
  181. package/dist/cards/impl/secret/ice-block.d.ts +2 -0
  182. package/dist/cards/impl/secret/ice-block.js +7 -0
  183. package/dist/cards/impl/secret/ice-block.js.map +1 -0
  184. package/dist/cards/impl/trinket/all-purpose-kibble.js.map +1 -1
  185. package/dist/cards/impl/trinket/arm-of-the-empire.js.map +1 -1
  186. package/dist/cards/impl/trinket/bassgill-portrait.js.map +1 -1
  187. package/dist/cards/impl/trinket/battle-horn.js.map +1 -1
  188. package/dist/cards/impl/trinket/bird-feeder.js.map +1 -1
  189. package/dist/cards/impl/trinket/crocheted-sungill.js.map +1 -1
  190. package/dist/cards/impl/trinket/eclectic-shrine.js.map +1 -1
  191. package/dist/cards/impl/trinket/faerie-dragon-scale.js.map +1 -1
  192. package/dist/cards/impl/trinket/fishy-sticker.js.map +1 -1
  193. package/dist/cards/impl/trinket/herald-sticker.js.map +1 -1
  194. package/dist/cards/impl/trinket/karazhan-chess-set.js.map +1 -1
  195. package/dist/cards/impl/trinket/rivendare-portrait.js.map +1 -1
  196. package/dist/cards/impl/trinket/sthara-sticker.js.map +1 -1
  197. package/dist/cards/impl/trinket/valorous-medaillion.js.map +1 -1
  198. package/dist/cards/impl/trinket/vashjir-anemone.js.map +1 -1
  199. package/dist/cards/impl/trinket/yulon-sticker.js.map +1 -1
  200. package/dist/debug-state.js.map +1 -1
  201. package/dist/input-clone.js +6 -3
  202. package/dist/input-clone.js.map +1 -1
  203. package/dist/keywords/venomous.js.map +1 -1
  204. package/dist/simulate-bgs-battle.js +2 -1
  205. package/dist/simulate-bgs-battle.js.map +1 -1
  206. package/dist/simulation/add-minion-to-board.js +5 -5
  207. package/dist/simulation/add-minion-to-board.js.map +1 -1
  208. package/dist/simulation/auras.js +7 -6
  209. package/dist/simulation/auras.js.map +1 -1
  210. package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
  211. package/dist/simulation/discover.js.map +1 -1
  212. package/dist/simulation/frenzy.js.map +1 -1
  213. package/dist/simulation/internal-game-state.d.ts +1 -0
  214. package/dist/simulation/internal-game-state.js.map +1 -1
  215. package/dist/simulation/quest.js.map +1 -1
  216. package/dist/simulation/secrets.d.ts +1 -0
  217. package/dist/simulation/secrets.js +14 -1
  218. package/dist/simulation/secrets.js.map +1 -1
  219. package/dist/simulation/simulator.js +25 -9
  220. package/dist/simulation/simulator.js.map +1 -1
  221. package/dist/simulation/start-of-combat/soc-action-processor.js +3 -0
  222. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  223. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"rapscallion-recruiter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rapscallion-recruiter.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,oBAAoB,GAAyB;IACzD,OAAO,EAAE,0BAAgF;IACzF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,OAAO,IAAA,4CAAuB,EAC7B,MAAM,CAAC,MAAM,iBAA4C;YACxD,CAAC;YACD,CAAC,UAA0B,EAC5B,CAAC,EACD,KAAK,CACL,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RapscallionRecruiter: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RapscallionRecruiter_BG26_018, CardIds.RapscallionRecruiter_BG26_018_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\treturn simplifiedSpawnEntities(\r\n\t\t\tminion.cardId === CardIds.RapscallionRecruiter_BG26_018_G\r\n\t\t\t\t? CardIds.Scallywag_TB_BaconUps_141\r\n\t\t\t\t: CardIds.Scallywag_BGS_061,\r\n\t\t\t2,\r\n\t\t\tinput,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"rapscallion-recruiter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rapscallion-recruiter.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,oBAAoB,GAAyB;IACzD,OAAO,EAAE,0BAAgF;IACzF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,OAAO,IAAA,4CAAuB,EAC7B,MAAM,CAAC,MAAM,iBAA4C;YACxD,CAAC;YACD,CAAC,UAA0B,EAC5B,CAAC,EACD,KAAK,CACL,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RapscallionRecruiter: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RapscallionRecruiter_BG26_018, CardIds.RapscallionRecruiter_BG26_018_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\treturn simplifiedSpawnEntities(\r\n\t\t\tminion.cardId === CardIds.RapscallionRecruiter_BG26_018_G\r\n\t\t\t\t? CardIds.Scallywag_TB_BaconUps_141\r\n\t\t\t\t: CardIds.Scallywag_BGS_061,\r\n\t\t\t2,\r\n\t\t\tinput,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"razorgore-the-untamed.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/razorgore-the-untamed.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,8BAAkF;IAC3F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,YAAY,CAAC,MAAM,EAAE;YACxB,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,IAAI,GAAG,YAAY,CAAC,MAAM,EAC1B,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAC9B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,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 { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard } from '../../card.interface';\r\n\r\nexport const RazorgoreTheUntamed: EndOfTurnCard = {\r\n\tcardIds: [CardIds.RazorgoreTheUntamed_BGS_036, CardIds.RazorgoreTheUntamed_TB_BaconUps_106],\r\n\tendOfTurn: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst otherDragons = input.board\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tconst mult = minion.cardId === CardIds.RazorgoreTheUntamed_TB_BaconUps_106 ? 2 : 1;\r\n\t\tif (otherDragons.length) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\tminion,\r\n\t\t\t\tmult * otherDragons.length,\r\n\t\t\t\tmult * 2 * otherDragons.length,\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},\r\n};\r\n"]}
1
+ {"version":3,"file":"razorgore-the-untamed.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/razorgore-the-untamed.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,8BAAkF;IAC3F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAI,YAAY,CAAC,MAAM,EAAE;YACxB,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,IAAI,GAAG,YAAY,CAAC,MAAM,EAC1B,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAC9B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard } from '../../card.interface';\r\n\r\nexport const RazorgoreTheUntamed: EndOfTurnCard = {\r\n\tcardIds: [CardIds.RazorgoreTheUntamed_BGS_036, CardIds.RazorgoreTheUntamed_TB_BaconUps_106],\r\n\tendOfTurn: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst otherDragons = input.board\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tconst mult = minion.cardId === CardIds.RazorgoreTheUntamed_TB_BaconUps_106 ? 2 : 1;\r\n\t\tif (otherDragons.length) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\tminion,\r\n\t\t\t\tmult * otherDragons.length,\r\n\t\t\t\tmult * 2 * otherDragons.length,\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},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"roach.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roach.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,KAAK,GAAkB;IACnC,OAAO,EAAE,wCAA2F;IACpG,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const Roach: EndOfTurnCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_RoachToken_BG31_HERO_811t3, CardIds.Roach_BG31_HERO_811t3_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Roach_BG31_HERO_811t3_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, 0, input.hero.tavernTier * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"roach.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roach.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,KAAK,GAAkB;IACnC,OAAO,EAAE,wCAA2F;IACpG,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const Roach: EndOfTurnCard = {\r\n\tcardIds: [CardIds.KerriganQueenOfBlades_RoachToken_BG31_HERO_811t3, CardIds.Roach_BG31_HERO_811t3_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Roach_BG31_HERO_811t3_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, 0, input.hero.tavernTier * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"roadboar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roadboar.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,QAAQ,GAAc;IAClC,OAAO,EAAE,0BAAwD;IACjE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QAC1D,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Roadboar: RallyCard = {\r\n\tcardIds: [CardIds.Roadboar_BG20_101, CardIds.Roadboar_BG20_101_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Roadboar_BG20_101_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(2 * mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"roadboar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roadboar.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,QAAQ,GAAc;IAClC,OAAO,EAAE,0BAAwD;IACjE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QAC1D,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Roadboar: RallyCard = {\r\n\tcardIds: [CardIds.Roadboar_BG20_101, CardIds.Roadboar_BG20_101_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Roadboar_BG20_101_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(2 * mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rodeo-performer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rodeo-performer.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7G,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const RodeoPerformer: BattlecryCard = {\r\n\tcardIds: [CardIds.RodeoPerformer_BG28_550, CardIds.RodeoPerformer_BG28_550_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst rodeoPerformerCardsToAdd = minion.cardId === CardIds.RodeoPerformer_BG28_550_G ? [null] : [null, null];\r\n\t\taddCardsInHand(input.hero, input.board, rodeoPerformerCardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"rodeo-performer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rodeo-performer.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7G,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const RodeoPerformer: BattlecryCard = {\r\n\tcardIds: [CardIds.RodeoPerformer_BG28_550, CardIds.RodeoPerformer_BG28_550_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst rodeoPerformerCardsToAdd = minion.cardId === CardIds.RodeoPerformer_BG28_550_G ? [null] : [null, null];\r\n\t\taddCardsInHand(input.hero, input.board, rodeoPerformerCardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ruins-renovator.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ruins-renovator.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAC1G,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,4CAAuB,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RuinsRenovator: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RuinsRenovator_BG33_802, CardIds.RuinsRenovator_BG33_802_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.RuinsRenovator_BG33_802_G ? 2 : 1;\r\n\t\tconst spawns = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst spawnId = input.gameState.cardsData.getRandomDivineShield(input.boardWithDeadEntityHero.tavernTier);\r\n\t\t\tspawns.push(...simplifiedSpawnEntities(spawnId, 1, input));\r\n\t\t}\r\n\t\treturn spawns;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"ruins-renovator.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ruins-renovator.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAC1G,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,4CAAuB,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3D;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RuinsRenovator: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RuinsRenovator_BG33_802, CardIds.RuinsRenovator_BG33_802_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.RuinsRenovator_BG33_802_G ? 2 : 1;\r\n\t\tconst spawns = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst spawnId = input.gameState.cardsData.getRandomDivineShield(input.boardWithDeadEntityHero.tavernTier);\r\n\t\t\tspawns.push(...simplifiedSpawnEntities(spawnId, 1, input));\r\n\t\t}\r\n\t\treturn spawns;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rylak-metalhead.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rylak-metalhead.ts"],"names":[],"mappings":";;;AACA,iEAAuD;AAEvD,mDAAqD;AACrD,uDAA2D;AAC3D,iEAAmE;AAEnE,0CAAmD;AAGtC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CACjG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACtD,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAC5G,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACxE,CAAC;QACF,MAAM,UAAU,GACf,MAAM,CAAC,MAAM,iBAAsC;YAClD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,SAAS,EACT,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,IAAA,8BAAgB,EACf,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,SAAS,EACT,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RylakMetalhead: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RylakMetalhead_BG26_801, CardIds.RylakMetalhead_BG26_801_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst debug = getNeighbours(input.boardWithDeadEntity, minion, input.deadEntityIndexFromRight).map(\r\n\t\t\t(e) => input.gameState.allCards.getCard(e.cardId).name,\r\n\t\t);\r\n\t\tconst allNeighbours = getNeighbours(input.boardWithDeadEntity, minion, input.deadEntityIndexFromRight).filter(\r\n\t\t\t(e) => hasEntityMechanic(e, GameTag.BATTLECRY, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst neighbours =\r\n\t\t\tminion.cardId === CardIds.RylakMetalhead_BG26_801_G\r\n\t\t\t\t? allNeighbours\r\n\t\t\t\t: [pickRandom(allNeighbours)].filter((e) => !!e);\r\n\t\tfor (const neighbour of neighbours) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t\ttriggerBattlecry(\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"rylak-metalhead.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rylak-metalhead.ts"],"names":[],"mappings":";;;AACA,iEAAuD;AAEvD,mDAAqD;AACrD,uDAA2D;AAC3D,iEAAmE;AAEnE,0CAAmD;AAGtC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CACjG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CACtD,CAAC;QACF,MAAM,aAAa,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,MAAM,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAC5G,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACxE,CAAC;QACF,MAAM,UAAU,GACf,MAAM,CAAC,MAAM,iBAAsC;YAClD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,SAAS,EACT,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,IAAA,8BAAgB,EACf,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,SAAS,EACT,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { GameTag } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { triggerBattlecry } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RylakMetalhead: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RylakMetalhead_BG26_801, CardIds.RylakMetalhead_BG26_801_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst debug = getNeighbours(input.boardWithDeadEntity, minion, input.deadEntityIndexFromRight).map(\r\n\t\t\t(e) => input.gameState.allCards.getCard(e.cardId).name,\r\n\t\t);\r\n\t\tconst allNeighbours = getNeighbours(input.boardWithDeadEntity, minion, input.deadEntityIndexFromRight).filter(\r\n\t\t\t(e) => hasEntityMechanic(e, GameTag.BATTLECRY, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst neighbours =\r\n\t\t\tminion.cardId === CardIds.RylakMetalhead_BG26_801_G\r\n\t\t\t\t? allNeighbours\r\n\t\t\t\t: [pickRandom(allNeighbours)].filter((e) => !!e);\r\n\t\tfor (const neighbour of neighbours) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t\ttriggerBattlecry(\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tneighbour,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"salty-hog.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/salty-hog.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,QAAQ,GAA+C;IACnE,OAAO,EAAE,0BAAwD;IACjE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC;IACnE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC1F;YACD,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;SAC7B;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const SaltyHog: OnCardAddedToHandCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.SaltyHog_BG31_332, CardIds.SaltyHog_BG31_332_G],\r\n\tdefaultCharges: (entity: BoardEntity) => entity.scriptDataNum1 || 3,\r\n\tonCardAddedToHand: (entity: BoardEntity, input: OnCardAddedToHandInput) => {\r\n\t\tentity.abiityChargesLeft = entity.abiityChargesLeft - 1;\r\n\t\tif (entity.abiityChargesLeft <= 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.SaltyHog_BG31_332_G ? 2 : 1;\r\n\t\t\tconst targets = input.board.filter((e) => e.entityId !== entity.entityId);\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tmodifyStats(target, entity, 1 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t\tentity.abiityChargesLeft = 3;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"salty-hog.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/salty-hog.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,QAAQ,GAA+C;IACnE,OAAO,EAAE,0BAAwD;IACjE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC;IACnE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC1F;YACD,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;SAC7B;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const SaltyHog: OnCardAddedToHandCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.SaltyHog_BG31_332, CardIds.SaltyHog_BG31_332_G],\r\n\tdefaultCharges: (entity: BoardEntity) => entity.scriptDataNum1 || 3,\r\n\tonCardAddedToHand: (entity: BoardEntity, input: OnCardAddedToHandInput) => {\r\n\t\tentity.abiityChargesLeft = entity.abiityChargesLeft - 1;\r\n\t\tif (entity.abiityChargesLeft <= 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.SaltyHog_BG31_332_G ? 2 : 1;\r\n\t\t\tconst targets = input.board.filter((e) => e.entityId !== entity.entityId);\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tmodifyStats(target, entity, 1 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t\tentity.abiityChargesLeft = 3;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sand-swirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sand-swirler.ts"],"names":[],"mappings":";;;AAKa,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SandSwirler: BattlecryCard = {\r\n\tcardIds: [CardIds.SandSwirler_BG32_841, CardIds.SandSwirler_BG32_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.GlowingCinder_BG32_842_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.ElementalHealthBuff += 1 * mult;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sand-swirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sand-swirler.ts"],"names":[],"mappings":";;;AAKa,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;QACtD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SandSwirler: BattlecryCard = {\r\n\tcardIds: [CardIds.SandSwirler_BG32_841, CardIds.SandSwirler_BG32_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.GlowingCinder_BG32_842_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.ElementalHealthBuff += 1 * mult;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sandy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sandy.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA2F;AAE9E,QAAA,KAAK,GAAG;IACpB,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,kBAA8B,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAA,wCAAgC,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAgB,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5F,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAExD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE;gBACb,IAAA,yBAAgB,EACf,IAAI,EACJ,IAAI,EACJ,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 { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { getRandomMinionWithHighestHealth, getTeammateInitialState } from '../../../utils';\r\n\r\nexport const Sandy = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\tif (teammateState?.board?.length) {\r\n\t\t\tconst isGolden = minion.cardId === CardIds.Sandy_BGDUO_125_G;\r\n\t\t\tconst minionToCopy = getRandomMinionWithHighestHealth(teammateState.board);\r\n\t\t\tconst copy: BoardEntity = { ...minionToCopy, enchantments: [...minionToCopy.enchantments] };\r\n\t\t\tconst attackerIndex = input.playerBoard.indexOf(minion);\r\n\t\t\t// Insert the copy in its place\r\n\t\t\tinput.playerBoard.splice(attackerIndex, 1, copy);\r\n\t\t\tif (isGolden) {\r\n\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\tcopy,\r\n\t\t\t\t\tcopy,\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":"sandy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sandy.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA2F;AAE9E,QAAA,KAAK,GAAG;IACpB,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,kBAA8B,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAA,wCAAgC,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAgB,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5F,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAExD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE;gBACb,IAAA,yBAAgB,EACf,IAAI,EACJ,IAAI,EACJ,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 { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { getRandomMinionWithHighestHealth, getTeammateInitialState } from '../../../utils';\r\n\r\nexport const Sandy = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\tif (teammateState?.board?.length) {\r\n\t\t\tconst isGolden = minion.cardId === CardIds.Sandy_BGDUO_125_G;\r\n\t\t\tconst minionToCopy = getRandomMinionWithHighestHealth(teammateState.board);\r\n\t\t\tconst copy: BoardEntity = { ...minionToCopy, enchantments: [...minionToCopy.enchantments] };\r\n\t\t\tconst attackerIndex = input.playerBoard.indexOf(minion);\r\n\t\t\t// Insert the copy in its place\r\n\t\t\tinput.playerBoard.splice(attackerIndex, 1, copy);\r\n\t\t\tif (isGolden) {\r\n\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\tcopy,\r\n\t\t\t\t\tcopy,\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":"scourge-harvester.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/scourge-harvester.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAuB;IACnD,OAAO,EAAE,0BAAwE;IAGjF,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAQ,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IACC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,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 { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const ScourgeHarvester: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.ScourgeHarvester_BG33_114, CardIds.ScourgeHarvester_BG33_114_G],\r\n\t// 2025-08-20:This is bugged today, as it should be able to get revived by the spawns\r\n\t// https://replays.firestoneapp.com/?reviewId=dc1a69b7-d93d-4f3a-9878-ddf0bddb3784&turn=19&action=8\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput): void => {\r\n\t\tconst mult = minion.cardId === CardIds.ScourgeHarvester_BG33_114_G ? 2 : 1;\r\n\t\tif (\r\n\t\t\thasCorrectTribe(input.spawned, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.spawned.attack * mult,\r\n\t\t\t\tinput.spawned.health * mult,\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},\r\n};\r\n"]}
1
+ {"version":3,"file":"scourge-harvester.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/scourge-harvester.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAuB;IACnD,OAAO,EAAE,0BAAwE;IAGjF,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAQ,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IACC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const ScourgeHarvester: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.ScourgeHarvester_BG33_114, CardIds.ScourgeHarvester_BG33_114_G],\r\n\t// 2025-08-20:This is bugged today, as it should be able to get revived by the spawns\r\n\t// https://replays.firestoneapp.com/?reviewId=dc1a69b7-d93d-4f3a-9878-ddf0bddb3784&turn=19&action=8\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput): void => {\r\n\t\tconst mult = minion.cardId === CardIds.ScourgeHarvester_BG33_114_G ? 2 : 1;\r\n\t\tif (\r\n\t\t\thasCorrectTribe(input.spawned, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.spawned.attack * mult,\r\n\t\t\t\tinput.spawned.health * mult,\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},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"selfless-hero.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/selfless-hero.ts"],"names":[],"mappings":";;;AAEA,mEAA0E;AAK7D,QAAA,YAAY,GAAyC;IACjE,OAAO,EAAE,gCAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,CAAA,EAAE;YAChG,OAAO,KAAK,CAAC;SACb;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,uCAAuB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3F;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,uCAAuB,EACtB,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { grantRandomDivineShield } from '../../../keywords/divine-shield';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SelflessHero: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SelflessHero_BG_OG_221, CardIds.SelflessHero_TB_BaconUps_014],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tif (!input.hero.trinkets?.some((t) => t.cardId === CardIds.SelflessPortrait_BG32_MagicItem_804)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst mult = minion.cardId === CardIds.SelflessHero_TB_BaconUps_014 ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tgrantRandomDivineShield(minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SelflessHero_TB_BaconUps_014 ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tgrantRandomDivineShield(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"selfless-hero.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/selfless-hero.ts"],"names":[],"mappings":";;;AAEA,mEAA0E;AAK7D,QAAA,YAAY,GAAyC;IACjE,OAAO,EAAE,gCAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,CAAA,EAAE;YAChG,OAAO,KAAK,CAAC;SACb;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,uCAAuB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3F;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,uCAAuB,EACtB,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { grantRandomDivineShield } from '../../../keywords/divine-shield';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SelflessHero: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SelflessHero_BG_OG_221, CardIds.SelflessHero_TB_BaconUps_014],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tif (!input.hero.trinkets?.some((t) => t.cardId === CardIds.SelflessPortrait_BG32_MagicItem_804)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tconst mult = minion.cardId === CardIds.SelflessHero_TB_BaconUps_014 ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tgrantRandomDivineShield(minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SelflessHero_TB_BaconUps_014 ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tgrantRandomDivineShield(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"shadowdancer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/shadowdancer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAoC,CAAC;QACxE,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Shadowdancer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Shadowdancer_BG32_891, CardIds.Shadowdancer_BG32_891_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Shadowdancer_BG32_891_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.StaffOfEnrichment_BG28_886);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"shadowdancer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/shadowdancer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAoC,CAAC;QACxE,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Shadowdancer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Shadowdancer_BG32_891, CardIds.Shadowdancer_BG32_891_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Shadowdancer_BG32_891_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.StaffOfEnrichment_BG28_886);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sharp-eyed-sabretooth.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sharp-eyed-sabretooth.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,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,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,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 SharpEyedSabretooth: BattlecryCard = {\r\n\tcardIds: [CardIds.SharpEyedSabretooth_BG33_846, CardIds.SharpEyedSabretooth_BG33_846_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.SharpEyedSabretooth_BG33_846_G ? 2 : 1;\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":"sharp-eyed-sabretooth.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sharp-eyed-sabretooth.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,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,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,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 SharpEyedSabretooth: BattlecryCard = {\r\n\tcardIds: [CardIds.SharpEyedSabretooth_BG33_846, CardIds.SharpEyedSabretooth_BG33_846_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.SharpEyedSabretooth_BG33_846_G ? 2 : 1;\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 +1 @@
1
- {"version":3,"file":"sharptooth-snapper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sharptooth-snapper.ts"],"names":[],"mappings":";;;AAGA,6EAAyF;AAG5E,QAAA,iBAAiB,GAA2C;IACxE,OAAO,EAAE,0BAA0E;IACnF,mBAAmB,EAAE,iBAAiB;IAGtC,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE;QACvC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,aAAa,EAAE,CACd,MAAmB,EACnB,KAAe,EACsD,EAAE;QACvE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAA,oDAAgC,EAC/B,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { handleSharptoothSnapperForPlayer } from '../../../simulation/summon-when-space';\r\nimport { DefaultChargesCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const SharptoothSnapper: StartOfCombatCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.SharptoothSnapper_BG32_201, CardIds.SharptoothSnapper_BG32_201_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\t// Use this instead of DefaultScriptDataNumCard so that it doesn't trigger before the Start of Combat minions phase\r\n\t// In fact this doesn't work, as it would allow it to trigger before some start of combat hero powers like Tentacular\r\n\tdefaultCharges: (minion: BoardEntity) => {\r\n\t\treturn 0;\r\n\t},\r\n\tstartOfCombat: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: SoCInput,\r\n\t): { hasTriggered: boolean; shouldRecomputeCurrentAttacker: boolean } => {\r\n\t\tminion.abiityChargesLeft = minion.cardId === CardIds.SharptoothSnapper_BG32_201_G ? 2 : 1;\r\n\t\thandleSharptoothSnapperForPlayer(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.opponentBoard,\r\n\t\t\tinput.opponentEntity,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { hasTriggered: false, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sharptooth-snapper.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sharptooth-snapper.ts"],"names":[],"mappings":";;;AAGA,6EAAyF;AAG5E,QAAA,iBAAiB,GAA2C;IACxE,OAAO,EAAE,0BAA0E;IACnF,mBAAmB,EAAE,iBAAiB;IAGtC,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE;QACvC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,aAAa,EAAE,CACd,MAAmB,EACnB,KAAe,EACsD,EAAE;QACvE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAA,oDAAgC,EAC/B,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { handleSharptoothSnapperForPlayer } from '../../../simulation/summon-when-space';\r\nimport { DefaultChargesCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const SharptoothSnapper: StartOfCombatCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.SharptoothSnapper_BG32_201, CardIds.SharptoothSnapper_BG32_201_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\t// Use this instead of DefaultScriptDataNumCard so that it doesn't trigger before the Start of Combat minions phase\r\n\t// In fact this doesn't work, as it would allow it to trigger before some start of combat hero powers like Tentacular\r\n\tdefaultCharges: (minion: BoardEntity) => {\r\n\t\treturn 0;\r\n\t},\r\n\tstartOfCombat: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: SoCInput,\r\n\t): { hasTriggered: boolean; shouldRecomputeCurrentAttacker: boolean } => {\r\n\t\tminion.abiityChargesLeft = minion.cardId === CardIds.SharptoothSnapper_BG32_201_G ? 2 : 1;\r\n\t\thandleSharptoothSnapperForPlayer(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.opponentBoard,\r\n\t\t\tinput.opponentEntity,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { hasTriggered: false, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ship-master-eudora.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ship-master-eudora.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ShipMasterEudora: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ShipMasterEudora_BG33_828, CardIds.ShipMasterEudora_BG33_828_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipMasterEudora_BG33_828_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t8 * mult,\r\n\t\t\t8 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"ship-master-eudora.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ship-master-eudora.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ShipMasterEudora: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ShipMasterEudora_BG33_828, CardIds.ShipMasterEudora_BG33_828_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipMasterEudora_BG33_828_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t8 * mult,\r\n\t\t\t8 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"shipwrecked-rascal.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/shipwrecked-rascal.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAItD,QAAA,iBAAiB,GAAyC;IACtE,OAAO,EAAE,0BAA0E;IACnF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ShipwreckedRascal: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ShipwreckedRascal_BG33_821, CardIds.ShipwreckedRascal_BG33_821_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipwreckedRascal_BG33_821_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(null);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipwreckedRascal_BG33_821_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(null);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"shipwrecked-rascal.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/shipwrecked-rascal.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAItD,QAAA,iBAAiB,GAAyC;IACtE,OAAO,EAAE,0BAA0E;IACnF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ShipwreckedRascal: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ShipwreckedRascal_BG33_821, CardIds.ShipwreckedRascal_BG33_821_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipwreckedRascal_BG33_821_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(null);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.ShipwreckedRascal_BG33_821_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(null);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"silver-handed-recruit.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silver-handed-recruit.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACrF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SilverHandedRecruit: BattlecryCard = {\r\n\tcardIds: [CardIds.SilverHandedRecruit_BG31_853, CardIds.SilverHandedRecruit_BG31_853_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SilverHandedRecruit_BG31_853_G ? 2 : 1;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 0)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, e, input.board, input.hero, null);\r\n\t\t\t});\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"silver-handed-recruit.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silver-handed-recruit.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACrF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SilverHandedRecruit: BattlecryCard = {\r\n\tcardIds: [CardIds.SilverHandedRecruit_BG31_853, CardIds.SilverHandedRecruit_BG31_853_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SilverHandedRecruit_BG31_853_G ? 2 : 1;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 0)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, e, input.board, input.hero, null);\r\n\t\t\t});\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"slumber-sorcerer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/slumber-sorcerer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,eAAe,GAAyB;IACpD,OAAO,EAAE,0BAAsE;IAC/E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAA+B,CAAC;QACnE,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SlumberSorcerer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SlumberSorcerer_BG32_833, CardIds.SlumberSorcerer_BG32_833_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SlumberSorcerer_BG32_833_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.ShiftingTide_BG32_815);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"slumber-sorcerer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/slumber-sorcerer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,eAAe,GAAyB;IACpD,OAAO,EAAE,0BAAsE;IAC/E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAA+B,CAAC;QACnE,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SlumberSorcerer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SlumberSorcerer_BG32_833, CardIds.SlumberSorcerer_BG32_833_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SlumberSorcerer_BG32_833_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.ShiftingTide_BG32_815);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"smolderwing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/smolderwing.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE;;;KAGR;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,IAAA,kBAAU,EACnC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CACD,CAAC;QACF,IAAI,CAAC,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7F,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1F,MAAM,qBAAqB,GAC1B,MAAM,CAAC,MAAM,gBAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,gBAAgB,GAAG,CAAC,GAAG,qBAAqB,CAAC;YACnD,IAAA,mBAAW,EAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtG;QACD,OAAO,IAAI,CAAC;IACb,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 { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const Smolderwing: BattlecryCard = {\r\n\tcardIds: [\r\n\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\t],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst smolderwingTarget = pickRandom(\r\n\t\t\tallMinions.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t),\r\n\t\t);\r\n\t\tif (!!smolderwingTarget) {\r\n\t\t\tconst targetBoard = input.board.includes(smolderwingTarget) ? input.board : input.otherBoard;\r\n\t\t\tconst targetHero = input.board.includes(smolderwingTarget) ? input.hero : input.otherHero;\r\n\t\t\tconst smolderwingMultiplier =\r\n\t\t\t\tminion.cardId === CardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t ? 1 : 2;\r\n\t\t\tconst smolderwingStats = 5 * smolderwingMultiplier;\r\n\t\t\tmodifyStats(smolderwingTarget, minion, smolderwingStats, 0, targetBoard, targetHero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"smolderwing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/smolderwing.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE;;;KAGR;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,IAAA,kBAAU,EACnC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CACD,CAAC;QACF,IAAI,CAAC,CAAC,iBAAiB,EAAE;YACxB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YAC7F,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YAC1F,MAAM,qBAAqB,GAC1B,MAAM,CAAC,MAAM,gBAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,gBAAgB,GAAG,CAAC,GAAG,qBAAqB,CAAC;YACnD,IAAA,mBAAW,EAAC,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtG;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const Smolderwing: BattlecryCard = {\r\n\tcardIds: [\r\n\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\t],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst smolderwingTarget = pickRandom(\r\n\t\t\tallMinions.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t),\r\n\t\t);\r\n\t\tif (!!smolderwingTarget) {\r\n\t\t\tconst targetBoard = input.board.includes(smolderwingTarget) ? input.board : input.otherBoard;\r\n\t\t\tconst targetHero = input.board.includes(smolderwingTarget) ? input.hero : input.otherHero;\r\n\t\t\tconst smolderwingMultiplier =\r\n\t\t\t\tminion.cardId === CardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t ? 1 : 2;\r\n\t\t\tconst smolderwingStats = 5 * smolderwingMultiplier;\r\n\t\t\tmodifyStats(smolderwingTarget, minion, smolderwingStats, 0, targetBoard, targetHero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"soul-rewinder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/soul-rewinder.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;;QACvE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,EAAE;YAC/F,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AfterHeroDamagedInput } from '../../../simulation/damage-to-hero';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterHeroDamagedCard } from '../../card.interface';\r\n\r\nexport const SoulRewinder: AfterHeroDamagedCard = {\r\n\tcardIds: [CardIds.SoulRewinder_BG26_174, CardIds.SoulRewinder_BG26_174_G],\r\n\tafterHeroDamaged: (minion: BoardEntity, input: AfterHeroDamagedInput) => {\r\n\t\tinput.hero.hpLeft = input.hero.hpLeft + input.damage;\r\n\t\tconst mult = minion.cardId === CardIds.SoulRewinder_BG26_174_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, 0, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\tif (input.hero.trinkets?.some((t) => t.cardId === CardIds.RewinderPortrait_BG30_MagicItem_868)) {\r\n\t\t\tmodifyStats(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"soul-rewinder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/soul-rewinder.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;;QACvE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,EAAE;YAC/F,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AfterHeroDamagedInput } from '../../../simulation/damage-to-hero';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterHeroDamagedCard } from '../../card.interface';\r\n\r\nexport const SoulRewinder: AfterHeroDamagedCard = {\r\n\tcardIds: [CardIds.SoulRewinder_BG26_174, CardIds.SoulRewinder_BG26_174_G],\r\n\tafterHeroDamaged: (minion: BoardEntity, input: AfterHeroDamagedInput) => {\r\n\t\tinput.hero.hpLeft = input.hero.hpLeft + input.damage;\r\n\t\tconst mult = minion.cardId === CardIds.SoulRewinder_BG26_174_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, 0, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\tif (input.hero.trinkets?.some((t) => t.cardId === CardIds.RewinderPortrait_BG30_MagicItem_868)) {\r\n\t\t\tmodifyStats(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"spacefarer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spacefarer.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,qDAA6E;AAC7E,0CAAiD;AAGpC,QAAA,UAAU,GAAuB;IAC7C,OAAO,EAAE,0BAA4D;IACrE,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5B,OAAO;SACP;QACD,IACC,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,OAAO;SACP;QACD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnF;IACF,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\nexport const Spacefarer: OnStatsChangedCard = {\r\n\tcardIds: [CardIds.Spacefarer_BG31_820, CardIds.Spacefarer_BG31_820_G],\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === entity) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(input.target, input.hero, Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (input.attackAmount > 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.Spacefarer_BG31_820_G ? 2 : 1;\r\n\t\t\tmodifyStats(entity, entity, 0, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"spacefarer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spacefarer.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,qDAA6E;AAC7E,0CAAiD;AAGpC,QAAA,UAAU,GAAuB;IAC7C,OAAO,EAAE,0BAA4D;IACrE,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5B,OAAO;SACP;QACD,IACC,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,OAAO;SACP;QACD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnF;IACF,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\nexport const Spacefarer: OnStatsChangedCard = {\r\n\tcardIds: [CardIds.Spacefarer_BG31_820, CardIds.Spacefarer_BG31_820_G],\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === entity) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(input.target, input.hero, Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (input.attackAmount > 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.Spacefarer_BG31_820_G ? 2 : 1;\r\n\t\t\tmodifyStats(entity, entity, 0, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"spirited-whimsydrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spirited-whimsydrake.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qEAAmE;AAGtD,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,qBAAI,CAAC,MAAM,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC,CAAC;SAC5G;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,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 { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SpiritedWhimsydrake: BattlecryCard = {\r\n\tcardIds: [CardIds.SpiritedWhimsydrake_BG32_823, CardIds.SpiritedWhimsydrake_BG32_823_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpiritedWhimsydrake_BG32_823_G ? 2 : 1;\r\n\t\tconst cardsToAdd = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tcardsToAdd.push(input.gameState.cardsData.getRandomMinionForTribe(Race.DRAGON, input.hero.tavernTier ?? 1));\r\n\t\t}\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"spirited-whimsydrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spirited-whimsydrake.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qEAAmE;AAGtD,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,qBAAI,CAAC,MAAM,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC,CAAC;SAC5G;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SpiritedWhimsydrake: BattlecryCard = {\r\n\tcardIds: [CardIds.SpiritedWhimsydrake_BG32_823, CardIds.SpiritedWhimsydrake_BG32_823_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpiritedWhimsydrake_BG32_823_G ? 2 : 1;\r\n\t\tconst cardsToAdd = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tcardsToAdd.push(input.gameState.cardsData.getRandomMinionForTribe(Race.DRAGON, input.hero.tavernTier ?? 1));\r\n\t\t}\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"springy-spriggan.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/springy-spriggan.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,0CAAiD;AAGpC,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE;;;;;KAKR;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GACT,MAAM,CAAC,MAAM,iBAAuC;YACpD,MAAM,CAAC,MAAM,mBAAoE;YAChF,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;QACN,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,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 { addStatsToBoard } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const SpringySpriggan: EndOfTurnCard = {\r\n\tcardIds: [\r\n\t\tCardIds.SpringySpriggan_BG32_171,\r\n\t\tCardIds.SpringySpriggan_BG32_171_G,\r\n\t\tCardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171e2,\r\n\t\tCardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171_Ge2,\r\n\t],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult =\r\n\t\t\tminion.cardId === CardIds.SpringySpriggan_BG32_171_G ||\r\n\t\t\tminion.cardId === CardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171_Ge2\r\n\t\t\t\t? 2\r\n\t\t\t\t: 1;\r\n\t\taddStatsToBoard(minion, input.board, input.hero, 1 * mult, 0, input.gameState, Race[Race.MECH]);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"springy-spriggan.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/springy-spriggan.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,0CAAiD;AAGpC,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE;;;;;KAKR;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GACT,MAAM,CAAC,MAAM,iBAAuC;YACpD,MAAM,CAAC,MAAM,mBAAoE;YAChF,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;QACN,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const SpringySpriggan: EndOfTurnCard = {\r\n\tcardIds: [\r\n\t\tCardIds.SpringySpriggan_BG32_171,\r\n\t\tCardIds.SpringySpriggan_BG32_171_G,\r\n\t\tCardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171e2,\r\n\t\tCardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171_Ge2,\r\n\t],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult =\r\n\t\t\tminion.cardId === CardIds.SpringySpriggan_BG32_171_G ||\r\n\t\t\tminion.cardId === CardIds.SpringySpriggan_SpringySprigganEnchantment_BG32_171_Ge2\r\n\t\t\t\t? 2\r\n\t\t\t\t: 1;\r\n\t\taddStatsToBoard(minion, input.board, input.hero, 1 * mult, 0, input.gameState, Race[Race.MECH]);\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stitched-salvager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stitched-salvager.ts"],"names":[],"mappings":";;;AAEA,iFAA8E;AAG9E,0CAA4C;AAG/B,QAAA,gBAAgB,GAA6C;IACzE,OAAO,EAAE,0BAAwE;IACjF,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,WAAW,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;SACjD;QACD,IAAI,MAAM,CAAC,MAAM,iBAAwC,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;SACjD;QAED,OAAO,GAAG,OAAO,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAAwC,IAAI,CAAC,CAAC,MAAM,eAAsC,CACzG,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACpB,OAAO;SACP;QAED,MAAM,CAAC,MAAM,GAAG,OAAO;aACrB,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,iBAAwC,IAAI,CAAC,CAAC,MAAM,eAAsC,CACnG;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC;YAC3B,IAAA,yCAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACb,CAAC,CAA2B,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;SACF;QAGD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;;QACnG,MAAM,MAAM,GAAkB,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7D,OAAO,IAAA,kBAAU,EAAC;gBACjB,GAAG,CAAC;gBACJ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;aACvD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { removeAurasFromSelf } from '../../../simulation/add-minion-to-board';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { copyEntity } from '../../../utils';\r\nimport { DeathrattleSpawnCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StitchedSalvager: StartOfCombatCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.StitchedSalvager_BG31_999, CardIds.StitchedSalvager_BG31_999_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionIndex = input.playerBoard.indexOf(minion);\r\n\t\tlet targets = [];\r\n\t\tif (minionIndex > 0) {\r\n\t\t\ttargets.push(input.playerBoard[minionIndex - 1]);\r\n\t\t}\r\n\t\tif (minion.cardId === CardIds.StitchedSalvager_BG31_999_G && minionIndex < input.playerBoard.length - 1) {\r\n\t\t\ttargets.push(input.playerBoard[minionIndex + 1]);\r\n\t\t}\r\n\r\n\t\ttargets = targets.filter(\r\n\t\t\t(t) => t.cardId !== CardIds.StitchedSalvager_BG31_999_G && t.cardId !== CardIds.StitchedSalvager_BG31_999,\r\n\t\t);\r\n\t\tif (!targets.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.memory = targets\r\n\t\t\t.filter(\r\n\t\t\t\t(t) =>\r\n\t\t\t\t\tt.cardId !== CardIds.StitchedSalvager_BG31_999_G && t.cardId !== CardIds.StitchedSalvager_BG31_999,\r\n\t\t\t)\r\n\t\t\t.map((t) => {\r\n\t\t\t\tconst copy = copyEntity(t);\r\n\t\t\t\tremoveAurasFromSelf(copy, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\treturn copy;\r\n\t\t\t}) as readonly BoardEntity[];\r\n\t\tfor (const target of targets) {\r\n\t\t\ttarget.definitelyDead = true;\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\ttarget,\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);\r\n\t\t}\r\n\t\t// https://replays.firestoneapp.com/?reviewId=fb20ead1-624f-4fcb-84e2-8b8c1f4d6b73&turn=21&action=2\r\n\t\t// The side with the Stitched Salvager still attacks first, even with a board reduced to 6 minions\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst spawns: BoardEntity[] = (minion.memory ?? []).map((e) => {\r\n\t\t\treturn copyEntity({\r\n\t\t\t\t...e,\r\n\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn spawns;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stitched-salvager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stitched-salvager.ts"],"names":[],"mappings":";;;AAEA,iFAA8E;AAG9E,0CAA4C;AAG/B,QAAA,gBAAgB,GAA6C;IACzE,OAAO,EAAE,0BAAwE;IACjF,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,WAAW,GAAG,CAAC,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;SACjD;QACD,IAAI,MAAM,CAAC,MAAM,iBAAwC,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACxG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;SACjD;QAED,OAAO,GAAG,OAAO,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAAwC,IAAI,CAAC,CAAC,MAAM,eAAsC,CACzG,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACpB,OAAO;SACP;QAED,MAAM,CAAC,MAAM,GAAG,OAAO;aACrB,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,iBAAwC,IAAI,CAAC,CAAC,MAAM,eAAsC,CACnG;aACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC;YAC3B,IAAA,yCAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACb,CAAC,CAA2B,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;SACF;QAGD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;;QACnG,MAAM,MAAM,GAAkB,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7D,OAAO,IAAA,kBAAU,EAAC;gBACjB,GAAG,CAAC;gBACJ,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;aACvD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { removeAurasFromSelf } from '../../../simulation/add-minion-to-board';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { copyEntity } from '../../../utils';\r\nimport { DeathrattleSpawnCard, StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StitchedSalvager: StartOfCombatCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.StitchedSalvager_BG31_999, CardIds.StitchedSalvager_BG31_999_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionIndex = input.playerBoard.indexOf(minion);\r\n\t\tlet targets = [];\r\n\t\tif (minionIndex > 0) {\r\n\t\t\ttargets.push(input.playerBoard[minionIndex - 1]);\r\n\t\t}\r\n\t\tif (minion.cardId === CardIds.StitchedSalvager_BG31_999_G && minionIndex < input.playerBoard.length - 1) {\r\n\t\t\ttargets.push(input.playerBoard[minionIndex + 1]);\r\n\t\t}\r\n\r\n\t\ttargets = targets.filter(\r\n\t\t\t(t) => t.cardId !== CardIds.StitchedSalvager_BG31_999_G && t.cardId !== CardIds.StitchedSalvager_BG31_999,\r\n\t\t);\r\n\t\tif (!targets.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.memory = targets\r\n\t\t\t.filter(\r\n\t\t\t\t(t) =>\r\n\t\t\t\t\tt.cardId !== CardIds.StitchedSalvager_BG31_999_G && t.cardId !== CardIds.StitchedSalvager_BG31_999,\r\n\t\t\t)\r\n\t\t\t.map((t) => {\r\n\t\t\t\tconst copy = copyEntity(t);\r\n\t\t\t\tremoveAurasFromSelf(copy, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\treturn copy;\r\n\t\t\t}) as readonly BoardEntity[];\r\n\t\tfor (const target of targets) {\r\n\t\t\ttarget.definitelyDead = true;\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\ttarget,\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);\r\n\t\t}\r\n\t\t// https://replays.firestoneapp.com/?reviewId=fb20ead1-624f-4fcb-84e2-8b8c1f4d6b73&turn=21&action=2\r\n\t\t// The side with the Stitched Salvager still attacks first, even with a board reduced to 6 minions\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst spawns: BoardEntity[] = (minion.memory ?? []).map((e) => {\r\n\t\t\treturn copyEntity({\r\n\t\t\t\t...e,\r\n\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t});\r\n\t\t});\r\n\t\treturn spawns;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stray-satyr.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stray-satyr.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,UAAU,GAAwB;IAC9C,OAAO,EAAE,0BAA4D;IACrE,eAAe,EAAE,CAAC,MAAmB,EAAE,KAA2B,EAAE,EAAE;QAErE,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;YACpD,OAAO;SACP;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IACC,QAAQ,IAAI,KAAK,CAAC,YAAY;YAC9B,QAAQ,IAAI,KAAK,CAAC,YAAY;YAC9B,IAAA,uBAAe,EACd,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACnF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7F;IACF,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 { AfterDealDamageInput } from '../../../simulation/damage-effects';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterDealDamageCard } from '../../card.interface';\r\n\r\nexport const StraySatyr: AfterDealDamageCard = {\r\n\tcardIds: [CardIds.StraySatyr_BG33_151, CardIds.StraySatyr_BG33_151_G],\r\n\tafterDealDamage: (minion: BoardEntity, input: AfterDealDamageInput) => {\r\n\t\t// Only friendly minions trigger this\r\n\t\tif (minion.friendly !== input.damageDealer.friendly) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.StraySatyr_BG33_151_G ? 2 : 1;\r\n\t\tif (\r\n\t\t\t'attack' in input.damageDealer &&\r\n\t\t\t'health' in input.damageDealer &&\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.damageDealer,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.DEMON,\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\tmodifyStats(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, minion, input.board, input.hero, null);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stray-satyr.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stray-satyr.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,UAAU,GAAwB;IAC9C,OAAO,EAAE,0BAA4D;IACrE,eAAe,EAAE,CAAC,MAAmB,EAAE,KAA2B,EAAE,EAAE;QAErE,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;YACpD,OAAO;SACP;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IACC,QAAQ,IAAI,KAAK,CAAC,YAAY;YAC9B,QAAQ,IAAI,KAAK,CAAC,YAAY;YAC9B,IAAA,uBAAe,EACd,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACnF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AfterDealDamageInput } from '../../../simulation/damage-effects';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterDealDamageCard } from '../../card.interface';\r\n\r\nexport const StraySatyr: AfterDealDamageCard = {\r\n\tcardIds: [CardIds.StraySatyr_BG33_151, CardIds.StraySatyr_BG33_151_G],\r\n\tafterDealDamage: (minion: BoardEntity, input: AfterDealDamageInput) => {\r\n\t\t// Only friendly minions trigger this\r\n\t\tif (minion.friendly !== input.damageDealer.friendly) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.StraySatyr_BG33_151_G ? 2 : 1;\r\n\t\tif (\r\n\t\t\t'attack' in input.damageDealer &&\r\n\t\t\t'health' in input.damageDealer &&\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.damageDealer,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.DEMON,\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\tmodifyStats(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, minion, input.board, input.hero, null);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sun-screener.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sun-screener.ts"],"names":[],"mappings":";;;AAEA,mEAAqF;AAGxE,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,eAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAA,kDAAkC,EACjC,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,QAAQ,EACR,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAA,kDAAkC,EACjC,MAAM,EACN,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,QAAQ,EACR,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { grantDivineShieldToLeftmostMinions } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const SunScreener = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0 || input.opponentBoard.length > 0) {\r\n\t\t\tconst quantity = minion.cardId === CardIds.SunScreener_BG30_101 ? 3 : 6;\r\n\t\t\tgrantDivineShieldToLeftmostMinions(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tquantity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tgrantDivineShieldToLeftmostMinions(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tquantity,\r\n\t\t\t\tinput.playerEntity,\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
+ {"version":3,"file":"sun-screener.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sun-screener.ts"],"names":[],"mappings":";;;AAEA,mEAAqF;AAGxE,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,eAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,IAAA,kDAAkC,EACjC,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,QAAQ,EACR,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAA,kDAAkC,EACjC,MAAM,EACN,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,QAAQ,EACR,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { grantDivineShieldToLeftmostMinions } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const SunScreener = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0 || input.opponentBoard.length > 0) {\r\n\t\t\tconst quantity = minion.cardId === CardIds.SunScreener_BG30_101 ? 3 : 6;\r\n\t\t\tgrantDivineShieldToLeftmostMinions(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tquantity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tgrantDivineShieldToLeftmostMinions(\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tquantity,\r\n\t\t\t\tinput.playerEntity,\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":"surfing-slyvar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/surfing-slyvar.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACrG,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAClF,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const SurfingSylvar: EndOfTurnCard = {\r\n\tcardIds: [CardIds.SurfingSylvar_BG32_235, CardIds.SurfingSylvar_BG32_235_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SurfingSylvar_BG32_235_G ? 2 : 1;\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards)).length;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (let i = 0; i < goldenMinions + 1; i++) {\r\n\t\t\tneighbours.forEach((target) =>\r\n\t\t\t\tmodifyStats(target, minion, 1 * mult, 0, input.board, input.hero, input.gameState),\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"surfing-slyvar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/surfing-slyvar.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACrG,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAClF,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const SurfingSylvar: EndOfTurnCard = {\r\n\tcardIds: [CardIds.SurfingSylvar_BG32_235, CardIds.SurfingSylvar_BG32_235_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SurfingSylvar_BG32_235_G ? 2 : 1;\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards)).length;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (let i = 0; i < goldenMinions + 1; i++) {\r\n\t\t\tneighbours.forEach((target) =>\r\n\t\t\t\tmodifyStats(target, minion, 1 * mult, 0, input.board, input.hero, input.gameState),\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -9,15 +9,41 @@ const numberOfTargets = 2;
9
9
  exports.TastyLobster = {
10
10
  cardIds: ["BG36_202", "BG36_202_G"],
11
11
  deathrattleEffect: (minion, input) => {
12
+ var _a, _b, _c, _d, _e;
12
13
  const base = minion.cardId === "BG36_202_G" ? 2 : 1;
13
- const atkBuff = base * (1 + input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff);
14
- const healthBuff = base * (1 + input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff);
14
+ const fromScript = minion.scriptDataNum1 != null &&
15
+ Number.isFinite(minion.scriptDataNum1) &&
16
+ minion.scriptDataNum1 > 0;
17
+ const atkBuff = fromScript
18
+ ? minion.scriptDataNum1
19
+ : base * (1 + ((_a = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _a !== void 0 ? _a : 0));
20
+ const healthBuff = fromScript
21
+ ? minion.scriptDataNum2 != null &&
22
+ Number.isFinite(minion.scriptDataNum2) &&
23
+ minion.scriptDataNum2 > 0
24
+ ? minion.scriptDataNum2
25
+ : atkBuff
26
+ : base * (1 + ((_b = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _b !== void 0 ? _b : 0));
15
27
  const candidates = input.boardWithDeadEntity.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
16
28
  const targets = (0, utils_1.pickMultipleRandomAlive)(candidates, numberOfTargets);
17
29
  for (const target of targets) {
18
30
  (0, stats_1.modifyStats)(target, minion, atkBuff, healthBuff, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
19
31
  }
20
- input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff += 1;
32
+ const priorBuff = fromScript
33
+ ? Math.max(0, Math.floor(atkBuff / base) - 1)
34
+ : ((_c = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _c !== void 0 ? _c : 0);
35
+ input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff =
36
+ Math.max((_d = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _d !== void 0 ? _d : 0, priorBuff) + 1;
37
+ const buffAfter = (_e = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _e !== void 0 ? _e : 0;
38
+ for (const e of input.boardWithDeadEntity) {
39
+ if (e.cardId === "BG36_202" ||
40
+ e.cardId === "BG36_202_G") {
41
+ const eBase = e.cardId === "BG36_202_G" ? 2 : 1;
42
+ const next = eBase * (1 + buffAfter);
43
+ e.scriptDataNum1 = next;
44
+ e.scriptDataNum2 = next;
45
+ }
46
+ }
21
47
  },
22
48
  };
23
49
  //# sourceMappingURL=tasty-lobster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACxF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,CAAC;IACjE,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n * Taunt. Deathrattle: Give two friendly Beasts +1/+1. Improve your future Tasty Lobsters.\r\n *\r\n * Golden Tasty Lobster (Tier 3, 2/2)\r\n * Taunt. Deathrattle: Give two friendly Beasts +2/+2. Improve your future Tasty Lobsters.\r\n *\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst numberOfTargets = 2;\r\n\r\nexport const TastyLobster: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TastyLobster_BG36_202, CardIds.TastyLobster_BG36_202_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst base = minion.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\tconst atkBuff = base * (1 + input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff);\r\n\t\tconst healthBuff = base * (1 + input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff);\r\n\t\tconst candidates = input.boardWithDeadEntity.filter((e) =>\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\te,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\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\tconst targets = pickMultipleRandomAlive(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tatkBuff,\r\n\t\t\t\thealthBuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff += 1;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAKvE,MAAM,UAAU,GACf,MAAM,CAAC,cAAc,IAAI,IAAI;YAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;YACtC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU;YACzB,CAAC,CAAC,MAAM,CAAC,cAAe;YACxB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,UAAU;YAC5B,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI;gBAC9B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;gBACtC,MAAM,CAAC,cAAc,GAAG,CAAC;gBACzB,CAAC,CAAC,MAAM,CAAC,cAAc;gBACvB,CAAC,CAAC,OAAO;YACV,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,MAAM,SAAS,GAAG,UAAU;YAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB;YACzD,IAAI,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAE1F,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;QAClF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE;YAC1C,IACC,CAAC,CAAC,MAAM,eAAkC;gBAC1C,CAAC,CAAC,MAAM,iBAAoC,EAC3C;gBACD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;gBACrC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC;aACxB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n * Taunt. Deathrattle: Give two friendly Beasts +1/+1. Improve your future Tasty Lobsters.\r\n *\r\n * Golden Tasty Lobster (Tier 3, 2/2)\r\n * Taunt. Deathrattle: Give two friendly Beasts +2/+2. Improve your future Tasty Lobsters.\r\n *\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst numberOfTargets = 2;\r\n\r\nexport const TastyLobster: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TastyLobster_BG36_202, CardIds.TastyLobster_BG36_202_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst base = minion.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\t// Live lobsters store the current +X/+X on TAG_SCRIPT_DATA_NUM_1/2 (starts at\r\n\t\t// base, rises as prior Tasty Lobsters improve future ones). Prefer that over\r\n\t\t// globalInfo so combat-open copies with scriptData=2 aren't under-buffed when\r\n\t\t// TastyLobstersBuff was not extracted.\r\n\t\tconst fromScript =\r\n\t\t\tminion.scriptDataNum1 != null &&\r\n\t\t\tNumber.isFinite(minion.scriptDataNum1) &&\r\n\t\t\tminion.scriptDataNum1 > 0;\r\n\t\tconst atkBuff = fromScript\r\n\t\t\t? minion.scriptDataNum1!\r\n\t\t\t: base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst healthBuff = fromScript\r\n\t\t\t? minion.scriptDataNum2 != null &&\r\n\t\t\t\tNumber.isFinite(minion.scriptDataNum2) &&\r\n\t\t\t\tminion.scriptDataNum2 > 0\r\n\t\t\t\t? minion.scriptDataNum2\r\n\t\t\t\t: atkBuff\r\n\t\t\t: base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst candidates = input.boardWithDeadEntity.filter((e) =>\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\te,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\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\tconst targets = pickMultipleRandomAlive(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tatkBuff,\r\n\t\t\t\thealthBuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst priorBuff = fromScript\r\n\t\t\t? Math.max(0, Math.floor(atkBuff / base) - 1)\r\n\t\t\t: (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0);\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff =\r\n\t\t\tMath.max(input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0, priorBuff) + 1;\r\n\t\t// Live TagChanges bump TAG_SCRIPT_DATA on other Tasty Lobsters when one dies.\r\n\t\tconst buffAfter = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0;\r\n\t\tfor (const e of input.boardWithDeadEntity) {\r\n\t\t\tif (\r\n\t\t\t\te.cardId === CardIds.TastyLobster_BG36_202 ||\r\n\t\t\t\te.cardId === CardIds.TastyLobster_BG36_202_G\r\n\t\t\t) {\r\n\t\t\t\tconst eBase = e.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\t\t\tconst next = eBase * (1 + buffAfter);\r\n\t\t\t\te.scriptDataNum1 = next;\r\n\t\t\t\te.scriptDataNum2 = next;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"thorncaller.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thorncaller.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAItD,QAAA,WAAW,GAAyC;IAChE,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QACtD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QACtD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Thorncaller: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Thorncaller_BG20_105, CardIds.Thorncaller_BG20_105_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.Thorncaller_BG20_105_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Thorncaller_BG20_105_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"thorncaller.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thorncaller.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAItD,QAAA,WAAW,GAAyC;IAChE,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QACtD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAkB,CAAC;QACtD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Thorncaller: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Thorncaller_BG20_105, CardIds.Thorncaller_BG20_105_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.Thorncaller_BG20_105_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Thorncaller_BG20_105_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.BloodGem);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"thousandth-paper-drake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thousandth-paper-drake.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,yDAA4D;AAE5D,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,oBAAoB,GAAG;IACnC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,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,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACxG,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1F,IAAA,yBAAc,EACb,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,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 { updateWindfury } from '../../../keywords/windfury';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const ThousandthPaperDrake = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ThousandthPaperDrake_BG29_810_G ? 2 : 1;\r\n\t\tconst pickedTargets = [];\r\n\t\tconst dragons = input.playerBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.playerEntity, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = dragons.filter((e) => !pickedTargets.includes(e))[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tmodifyStats(target, minion, 1, 2, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tupdateWindfury(\r\n\t\t\t\t\ttarget,\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\tpickedTargets.push(target);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\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}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"thousandth-paper-drake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thousandth-paper-drake.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,yDAA4D;AAE5D,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,oBAAoB,GAAG;IACnC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,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,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACxG,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1F,IAAA,yBAAc,EACb,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateWindfury } from '../../../keywords/windfury';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const ThousandthPaperDrake = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ThousandthPaperDrake_BG29_810_G ? 2 : 1;\r\n\t\tconst pickedTargets = [];\r\n\t\tconst dragons = input.playerBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.playerEntity, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = dragons.filter((e) => !pickedTargets.includes(e))[0];\r\n\t\t\tif (!!target) {\r\n\t\t\t\tmodifyStats(target, minion, 1, 2, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tupdateWindfury(\r\n\t\t\t\t\ttarget,\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\tpickedTargets.push(target);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\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}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"thundering-abomination.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thundering-abomination.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,qBAAqB,GAAuB;IACxD,OAAO,EAAE,0BAAkF;IAC3F,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACjE,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAA,mBAAW,EACV,KAAK,CAAC,OAAO,EACb,MAAM,EACN,mBAAmB,GAAG,CAAC,EACvB,mBAAmB,GAAG,CAAC,EACvB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const ThunderingAbomination: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.ThunderingAbomination_BG30_124, CardIds.ThunderingAbomination_BG30_124_G],\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tconst abomStatsMultiplier = minion.cardId === CardIds.ThunderingAbomination_BG30_124_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tinput.spawned,\r\n\t\t\tminion,\r\n\t\t\tabomStatsMultiplier * 3,\r\n\t\t\tabomStatsMultiplier * 3,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"thundering-abomination.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/thundering-abomination.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,qBAAqB,GAAuB;IACxD,OAAO,EAAE,0BAAkF;IAC3F,cAAc,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACjE,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAA,mBAAW,EACV,KAAK,CAAC,OAAO,EACb,MAAM,EACN,mBAAmB,GAAG,CAAC,EACvB,mBAAmB,GAAG,CAAC,EACvB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const ThunderingAbomination: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.ThunderingAbomination_BG30_124, CardIds.ThunderingAbomination_BG30_124_G],\r\n\tonOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tconst abomStatsMultiplier = minion.cardId === CardIds.ThunderingAbomination_BG30_124_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tinput.spawned,\r\n\t\t\tminion,\r\n\t\t\tabomStatsMultiplier * 3,\r\n\t\t\tabomStatsMultiplier * 3,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -12,7 +12,7 @@ exports.TimewarpedMrrrglr = {
12
12
  var _a;
13
13
  const targets = (0, attack_1.getNeighbours)(input.playerBoard, minion);
14
14
  const mult = minion.cardId === "BG34_Giant_321_G" ? 2 : 1;
15
- const realHand = ((_a = input.playerEntity.hand) !== null && _a !== void 0 ? _a : []).filter((e) => { var _a; return !((_a = e.enchantments) === null || _a === void 0 ? void 0 : _a.some((ench) => ench.cardId === 'TB_BaconShopBadsongE')); });
15
+ const realHand = ((_a = input.playerEntity.hand) !== null && _a !== void 0 ? _a : []).filter((e) => !!(e === null || e === void 0 ? void 0 : e.cardId) && !/Badsong/i.test(e.cardId));
16
16
  const totalAttackInHand = realHand.map((e) => { var _a; return (_a = e.attack) !== null && _a !== void 0 ? _a : 0; }).reduce((a, b) => a + b, 0);
17
17
  const totalHealthInHand = realHand.map((e) => { var _a; return (_a = e.health) !== null && _a !== void 0 ? _a : 0; }).reduce((a, b) => a + b, 0);
18
18
  const boardHasChorus = input.playerBoard.some((e) => { var _a; return (_a = e.enchantments) === null || _a === void 0 ? void 0 : _a.some((ench) => ench.cardId === "BG26_354e"); });
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-mrrrglr.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-mrrrglr.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAA2D;AAE3D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,iBAAiB,GAAsB;IACnD,OAAO,EAAE,sCAAsF;IAC/F,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElF,MAAM,QAAQ,GAAG,CAAC,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,CAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAA,CAAA,EAAA,CAC9E,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAGxF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WACnD,OAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,gBAA4C,CAAC,CAAA,EAAA,CACvF,CAAC;QACF,MAAM,UAAU,GACf,iBAAiB;YACjB,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC9F,CAAC,CAAC;QACH,MAAM,UAAU,GACf,iBAAiB;YACjB,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC9F,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IACC,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,YAAY,EAClB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;oBACD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } 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 { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMrrrglr: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedMrrrglr_BG34_Giant_321, CardIds.TimewarpedMrrrglr_BG34_Giant_321_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst targets = getNeighbours(input.playerBoard, minion);\r\n\t\t// Multiplier not needed if relying on global info?\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedMrrrglr_BG34_Giant_321_G ? 2 : 1;\r\n\t\t// When it's summoned by Y'Shaarj hero power, the info isn't set\r\n\t\tconst realHand = (input.playerEntity.hand ?? []).filter(\r\n\t\t\t(e) => !e.enchantments?.some((ench) => ench.cardId === 'TB_BaconShopBadsongE'),\r\n\t\t);\r\n\t\tconst totalAttackInHand = realHand.map((e) => e.attack ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tconst totalHealthInHand = realHand.map((e) => e.health ?? 0).reduce((a, b) => a + b, 0);\r\n\t\t// Same as ChoralMrrrglr: globalInfo Choral*Buff duplicates stats already on board when\r\n\t\t// the Chorus enchantment is present and hand extract is empty.\r\n\t\tconst boardHasChorus = input.playerBoard.some((e) =>\r\n\t\t\te.enchantments?.some((ench) => ench.cardId === CardIds.ChoralMrrrglr_ChorusEnchantment),\r\n\t\t);\r\n\t\tconst attackBuff =\r\n\t\t\ttotalAttackInHand ||\r\n\t\t\t(boardHasChorus || minion.gildedInCombat ? 0 : input.playerEntity.globalInfo.ChoralAttackBuff) ||\r\n\t\t\t0;\r\n\t\tconst healthBuff =\r\n\t\t\ttotalHealthInHand ||\r\n\t\t\t(boardHasChorus || minion.gildedInCombat ? 0 : input.playerEntity.globalInfo.ChoralHealthBuff) ||\r\n\t\t\t0;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tif (\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tRace.MURLOC,\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)\r\n\t\t\t\t) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tattackBuff,\r\n\t\t\t\t\t\thealthBuff,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\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":"timewarped-mrrrglr.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-mrrrglr.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAA2D;AAE3D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,iBAAiB,GAAsB;IACnD,OAAO,EAAE,sCAAsF;IAC/F,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAIlF,MAAM,QAAQ,GAAG,CAAC,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAChD,CAAC;QACF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,MAAM,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAGxF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WACnD,OAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,gBAA4C,CAAC,CAAA,EAAA,CACvF,CAAC;QACF,MAAM,UAAU,GACf,iBAAiB;YACjB,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC9F,CAAC,CAAC;QACH,MAAM,UAAU,GACf,iBAAiB;YACjB,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC9F,CAAC,CAAC;QACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IACC,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,YAAY,EAClB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;oBACD,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } 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 { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMrrrglr: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedMrrrglr_BG34_Giant_321, CardIds.TimewarpedMrrrglr_BG34_Giant_321_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst targets = getNeighbours(input.playerBoard, minion);\r\n\t\t// Multiplier not needed if relying on global info?\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedMrrrglr_BG34_Giant_321_G ? 2 : 1;\r\n\t\t// Ignore Badsong *stub cards* (cardId is the reveal placeholder). Opponent combat\r\n\t\t// hand copies often carry TB_BaconShopBadsongE as a fog-of-war enchant while still\r\n\t\t// being real minions with real stats — those must count.\r\n\t\tconst realHand = (input.playerEntity.hand ?? []).filter(\r\n\t\t\t(e) => !!e?.cardId && !/Badsong/i.test(e.cardId),\r\n\t\t);\r\n\t\tconst totalAttackInHand = realHand.map((e) => e.attack ?? 0).reduce((a, b) => a + b, 0);\r\n\t\tconst totalHealthInHand = realHand.map((e) => e.health ?? 0).reduce((a, b) => a + b, 0);\r\n\t\t// Same as ChoralMrrrglr: globalInfo Choral*Buff duplicates stats already on board when\r\n\t\t// the Chorus enchantment is present and hand extract is empty.\r\n\t\tconst boardHasChorus = input.playerBoard.some((e) =>\r\n\t\t\te.enchantments?.some((ench) => ench.cardId === CardIds.ChoralMrrrglr_ChorusEnchantment),\r\n\t\t);\r\n\t\tconst attackBuff =\r\n\t\t\ttotalAttackInHand ||\r\n\t\t\t(boardHasChorus || minion.gildedInCombat ? 0 : input.playerEntity.globalInfo.ChoralAttackBuff) ||\r\n\t\t\t0;\r\n\t\tconst healthBuff =\r\n\t\t\ttotalHealthInHand ||\r\n\t\t\t(boardHasChorus || minion.gildedInCombat ? 0 : input.playerEntity.globalInfo.ChoralHealthBuff) ||\r\n\t\t\t0;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tif (\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tRace.MURLOC,\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)\r\n\t\t\t\t) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tattackBuff,\r\n\t\t\t\t\t\thealthBuff,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\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"]}