@firestone-hs/simulate-bgs-battle 1.1.501 → 1.1.502

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 (272) hide show
  1. package/dist/bgs-player-entity.d.ts +6 -0
  2. package/dist/bgs-player-entity.js.map +1 -1
  3. package/dist/cards/card.interface.d.ts +110 -1
  4. package/dist/cards/card.interface.js +45 -0
  5. package/dist/cards/card.interface.js.map +1 -1
  6. package/dist/cards/cards-data.d.ts +5 -1
  7. package/dist/cards/cards-data.js +39 -6
  8. package/dist/cards/cards-data.js.map +1 -1
  9. package/dist/cards/impl/_card-mappings.d.ts +4 -0
  10. package/dist/cards/impl/_card-mappings.js +120 -0
  11. package/dist/cards/impl/_card-mappings.js.map +1 -0
  12. package/dist/cards/impl/anomaly/blessed-or-blighted.js +3 -2
  13. package/dist/cards/impl/anomaly/blessed-or-blighted.js.map +1 -1
  14. package/dist/cards/impl/bg-spell/boon-of-beetles.js +1 -1
  15. package/dist/cards/impl/bg-spell/boon-of-beetles.js.map +1 -1
  16. package/dist/cards/impl/enchantments/crystal-infuser-enchantment.d.ts +2 -0
  17. package/dist/cards/impl/enchantments/crystal-infuser-enchantment.js +16 -0
  18. package/dist/cards/impl/enchantments/crystal-infuser-enchantment.js.map +1 -0
  19. package/dist/cards/impl/hero-power/reborn-rites.js +2 -1
  20. package/dist/cards/impl/hero-power/reborn-rites.js.map +1 -1
  21. package/dist/cards/impl/hero-power/swatting-insects.js +5 -3
  22. package/dist/cards/impl/hero-power/swatting-insects.js.map +1 -1
  23. package/dist/cards/impl/hero-power/water-invocation.js +1 -1
  24. package/dist/cards/impl/hero-power/water-invocation.js.map +1 -1
  25. package/dist/cards/impl/minion/amber-guardian.js +1 -1
  26. package/dist/cards/impl/minion/amber-guardian.js.map +1 -1
  27. package/dist/cards/impl/minion/arcane-cannoneer.d.ts +2 -0
  28. package/dist/cards/impl/minion/arcane-cannoneer.js +15 -0
  29. package/dist/cards/impl/minion/arcane-cannoneer.js.map +1 -0
  30. package/dist/cards/impl/minion/bannerboar.d.ts +2 -0
  31. package/dist/cards/impl/minion/bannerboar.js +16 -0
  32. package/dist/cards/impl/minion/bannerboar.js.map +1 -0
  33. package/dist/cards/impl/minion/beetle.d.ts +2 -0
  34. package/dist/cards/impl/minion/beetle.js +16 -0
  35. package/dist/cards/impl/minion/beetle.js.map +1 -0
  36. package/dist/cards/impl/minion/bird-buddy.d.ts +2 -0
  37. package/dist/cards/impl/minion/bird-buddy.js +14 -0
  38. package/dist/cards/impl/minion/bird-buddy.js.map +1 -0
  39. package/dist/cards/impl/minion/boar-gamer.d.ts +2 -0
  40. package/dist/cards/impl/minion/boar-gamer.js +12 -0
  41. package/dist/cards/impl/minion/boar-gamer.js.map +1 -0
  42. package/dist/cards/impl/minion/bubble-gunner.d.ts +2 -0
  43. package/dist/cards/impl/minion/bubble-gunner.js +44 -0
  44. package/dist/cards/impl/minion/bubble-gunner.js.map +1 -0
  45. package/dist/cards/impl/minion/buzzing-vermin.d.ts +2 -0
  46. package/dist/cards/impl/minion/buzzing-vermin.js +12 -0
  47. package/dist/cards/impl/minion/buzzing-vermin.js.map +1 -0
  48. package/dist/cards/impl/minion/cadaver-caretaker.d.ts +2 -0
  49. package/dist/cards/impl/minion/cadaver-caretaker.js +12 -0
  50. package/dist/cards/impl/minion/cadaver-caretaker.js.map +1 -0
  51. package/dist/cards/impl/minion/deathly-striker.d.ts +2 -0
  52. package/dist/cards/impl/minion/deathly-striker.js +32 -0
  53. package/dist/cards/impl/minion/deathly-striker.js.map +1 -0
  54. package/dist/cards/impl/minion/efficient-engineer.d.ts +2 -0
  55. package/dist/cards/impl/minion/efficient-engineer.js +24 -0
  56. package/dist/cards/impl/minion/efficient-engineer.js.map +1 -0
  57. package/dist/cards/impl/minion/electric-synthesizer.d.ts +2 -0
  58. package/dist/cards/impl/minion/electric-synthesizer.js +24 -0
  59. package/dist/cards/impl/minion/electric-synthesizer.js.map +1 -0
  60. package/dist/cards/impl/minion/fairy-gillmother.d.ts +2 -0
  61. package/dist/cards/impl/minion/fairy-gillmother.js +18 -0
  62. package/dist/cards/impl/minion/fairy-gillmother.js.map +1 -0
  63. package/dist/cards/impl/minion/forest-rover.d.ts +2 -0
  64. package/dist/cards/impl/minion/forest-rover.js +23 -0
  65. package/dist/cards/impl/minion/forest-rover.js.map +1 -0
  66. package/dist/cards/impl/minion/fountain-chiller.d.ts +2 -0
  67. package/dist/cards/impl/minion/fountain-chiller.js +27 -0
  68. package/dist/cards/impl/minion/fountain-chiller.js.map +1 -0
  69. package/dist/cards/impl/minion/gem-rat.d.ts +2 -0
  70. package/dist/cards/impl/minion/gem-rat.js +12 -0
  71. package/dist/cards/impl/minion/gem-rat.js.map +1 -0
  72. package/dist/cards/impl/minion/gentle-djinni.d.ts +2 -0
  73. package/dist/cards/impl/minion/gentle-djinni.js +25 -0
  74. package/dist/cards/impl/minion/gentle-djinni.js.map +1 -0
  75. package/dist/cards/impl/minion/goldrinn-the-great-wolf.d.ts +2 -0
  76. package/dist/cards/impl/minion/goldrinn-the-great-wolf.js +15 -0
  77. package/dist/cards/impl/minion/goldrinn-the-great-wolf.js.map +1 -0
  78. package/dist/cards/impl/minion/gritty-headhunter.d.ts +2 -0
  79. package/dist/cards/impl/minion/gritty-headhunter.js +14 -0
  80. package/dist/cards/impl/minion/gritty-headhunter.js.map +1 -0
  81. package/dist/cards/impl/minion/hackerfin.d.ts +2 -0
  82. package/dist/cards/impl/minion/hackerfin.js +21 -0
  83. package/dist/cards/impl/minion/hackerfin.js.map +1 -0
  84. package/dist/cards/impl/minion/handless-forsaken.d.ts +2 -0
  85. package/dist/cards/impl/minion/handless-forsaken.js +12 -0
  86. package/dist/cards/impl/minion/handless-forsaken.js.map +1 -0
  87. package/dist/cards/impl/minion/harmless-bonehead.d.ts +2 -0
  88. package/dist/cards/impl/minion/harmless-bonehead.js +12 -0
  89. package/dist/cards/impl/minion/harmless-bonehead.js.map +1 -0
  90. package/dist/cards/impl/minion/holo-rover.d.ts +2 -0
  91. package/dist/cards/impl/minion/holo-rover.js +16 -0
  92. package/dist/cards/impl/minion/holo-rover.js.map +1 -0
  93. package/dist/cards/impl/minion/humming-bird.d.ts +2 -5
  94. package/dist/cards/impl/minion/humming-bird.js +1 -0
  95. package/dist/cards/impl/minion/humming-bird.js.map +1 -1
  96. package/dist/cards/impl/minion/hungry-snapjaw.d.ts +2 -0
  97. package/dist/cards/impl/minion/hungry-snapjaw.js +17 -0
  98. package/dist/cards/impl/minion/hungry-snapjaw.js.map +1 -0
  99. package/dist/cards/impl/minion/implant-subject.d.ts +2 -0
  100. package/dist/cards/impl/minion/implant-subject.js +42 -0
  101. package/dist/cards/impl/minion/implant-subject.js.map +1 -0
  102. package/dist/cards/impl/minion/indomitable-mount.d.ts +2 -0
  103. package/dist/cards/impl/minion/indomitable-mount.js +23 -0
  104. package/dist/cards/impl/minion/indomitable-mount.js.map +1 -0
  105. package/dist/cards/impl/minion/interrogator-whitemane.js +5 -4
  106. package/dist/cards/impl/minion/interrogator-whitemane.js.map +1 -1
  107. package/dist/cards/impl/minion/karmic-chameleon.d.ts +2 -0
  108. package/dist/cards/impl/minion/karmic-chameleon.js +27 -0
  109. package/dist/cards/impl/minion/karmic-chameleon.js.map +1 -0
  110. package/dist/cards/impl/minion/manasaber.d.ts +2 -0
  111. package/dist/cards/impl/minion/manasaber.js +14 -0
  112. package/dist/cards/impl/minion/manasaber.js.map +1 -0
  113. package/dist/cards/impl/minion/mantid-queen.js +6 -3
  114. package/dist/cards/impl/minion/mantid-queen.js.map +1 -1
  115. package/dist/cards/impl/minion/marquee-ticker.d.ts +2 -0
  116. package/dist/cards/impl/minion/marquee-ticker.js +12 -0
  117. package/dist/cards/impl/minion/marquee-ticker.js.map +1 -0
  118. package/dist/cards/impl/minion/mechanized-gift-horse.d.ts +2 -0
  119. package/dist/cards/impl/minion/mechanized-gift-horse.js +13 -0
  120. package/dist/cards/impl/minion/mechanized-gift-horse.js.map +1 -0
  121. package/dist/cards/impl/minion/mechorse.d.ts +2 -0
  122. package/dist/cards/impl/minion/mechorse.js +16 -0
  123. package/dist/cards/impl/minion/mechorse.js.map +1 -0
  124. package/dist/cards/impl/minion/moonsteel-juggernaut.d.ts +2 -0
  125. package/dist/cards/impl/minion/moonsteel-juggernaut.js +15 -0
  126. package/dist/cards/impl/minion/moonsteel-juggernaut.js.map +1 -0
  127. package/dist/cards/impl/minion/mutated-lasher.d.ts +2 -0
  128. package/dist/cards/impl/minion/mutated-lasher.js +26 -0
  129. package/dist/cards/impl/minion/mutated-lasher.js.map +1 -0
  130. package/dist/cards/impl/minion/neon-agent.d.ts +2 -0
  131. package/dist/cards/impl/minion/neon-agent.js +18 -0
  132. package/dist/cards/impl/minion/neon-agent.js.map +1 -0
  133. package/dist/cards/impl/minion/nest-swarmer.d.ts +2 -0
  134. package/dist/cards/impl/minion/nest-swarmer.js +12 -0
  135. package/dist/cards/impl/minion/nest-swarmer.js.map +1 -0
  136. package/dist/cards/impl/minion/nether-drake.d.ts +2 -0
  137. package/dist/cards/impl/minion/nether-drake.js +15 -0
  138. package/dist/cards/impl/minion/nether-drake.js.map +1 -0
  139. package/dist/cards/impl/minion/niuzao.d.ts +2 -0
  140. package/dist/cards/impl/minion/niuzao.js +21 -0
  141. package/dist/cards/impl/minion/niuzao.js.map +1 -0
  142. package/dist/cards/impl/minion/outback-smolderer.d.ts +2 -0
  143. package/dist/cards/impl/minion/outback-smolderer.js +17 -0
  144. package/dist/cards/impl/minion/outback-smolderer.js.map +1 -0
  145. package/dist/cards/impl/minion/razorgore-the-untamed.d.ts +2 -0
  146. package/dist/cards/impl/minion/razorgore-the-untamed.js +20 -0
  147. package/dist/cards/impl/minion/razorgore-the-untamed.js.map +1 -0
  148. package/dist/cards/impl/minion/reckless-cliffdiver.d.ts +2 -0
  149. package/dist/cards/impl/minion/reckless-cliffdiver.js +19 -0
  150. package/dist/cards/impl/minion/reckless-cliffdiver.js.map +1 -0
  151. package/dist/cards/impl/minion/runed-progenitor.d.ts +2 -0
  152. package/dist/cards/impl/minion/runed-progenitor.js +24 -0
  153. package/dist/cards/impl/minion/runed-progenitor.js.map +1 -0
  154. package/dist/cards/impl/minion/rylak-metalhead.d.ts +2 -0
  155. package/dist/cards/impl/minion/rylak-metalhead.js +22 -0
  156. package/dist/cards/impl/minion/rylak-metalhead.js.map +1 -0
  157. package/dist/cards/impl/minion/salty-hog.d.ts +2 -0
  158. package/dist/cards/impl/minion/salty-hog.js +17 -0
  159. package/dist/cards/impl/minion/salty-hog.js.map +1 -0
  160. package/dist/cards/impl/minion/showy-cyclist.d.ts +2 -0
  161. package/dist/cards/impl/minion/showy-cyclist.js +14 -0
  162. package/dist/cards/impl/minion/showy-cyclist.js.map +1 -0
  163. package/dist/cards/impl/minion/silver-handed-recruit.d.ts +2 -0
  164. package/dist/cards/impl/minion/silver-handed-recruit.js +17 -0
  165. package/dist/cards/impl/minion/silver-handed-recruit.js.map +1 -0
  166. package/dist/cards/impl/minion/sly-raptor.d.ts +2 -0
  167. package/dist/cards/impl/minion/sly-raptor.js +18 -0
  168. package/dist/cards/impl/minion/sly-raptor.js.map +1 -0
  169. package/dist/cards/impl/minion/soulsplitter.js +2 -1
  170. package/dist/cards/impl/minion/soulsplitter.js.map +1 -1
  171. package/dist/cards/impl/minion/spacefarer.d.ts +2 -0
  172. package/dist/cards/impl/minion/spacefarer.js +20 -0
  173. package/dist/cards/impl/minion/spacefarer.js.map +1 -0
  174. package/dist/cards/impl/minion/sun-screener.js +1 -1
  175. package/dist/cards/impl/minion/sun-screener.js.map +1 -1
  176. package/dist/cards/impl/minion/thousandth-paper-drake.js +2 -1
  177. package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -1
  178. package/dist/cards/impl/minion/turquoise-skitterer.d.ts +2 -0
  179. package/dist/cards/impl/minion/turquoise-skitterer.js +25 -0
  180. package/dist/cards/impl/minion/turquoise-skitterer.js.map +1 -0
  181. package/dist/cards/impl/minion/twilight-primordium.d.ts +2 -0
  182. package/dist/cards/impl/minion/twilight-primordium.js +24 -0
  183. package/dist/cards/impl/minion/twilight-primordium.js.map +1 -0
  184. package/dist/cards/impl/minion/ultraviolet-ascendant.d.ts +2 -0
  185. package/dist/cards/impl/minion/ultraviolet-ascendant.js +14 -0
  186. package/dist/cards/impl/minion/ultraviolet-ascendant.js.map +1 -0
  187. package/dist/cards/impl/minion/wandering-wight.d.ts +2 -0
  188. package/dist/cards/impl/minion/wandering-wight.js +12 -0
  189. package/dist/cards/impl/minion/wandering-wight.js.map +1 -0
  190. package/dist/cards/impl/minion/wisp-in-the-shell.d.ts +2 -0
  191. package/dist/cards/impl/minion/wisp-in-the-shell.js +19 -0
  192. package/dist/cards/impl/minion/wisp-in-the-shell.js.map +1 -0
  193. package/dist/cards/impl/trinket/eternal-portrait.js +4 -2
  194. package/dist/cards/impl/trinket/eternal-portrait.js.map +1 -1
  195. package/dist/cards/impl/trinket/holly-mallet.js +1 -1
  196. package/dist/cards/impl/trinket/holly-mallet.js.map +1 -1
  197. package/dist/{divine-shield.d.ts → keywords/divine-shield.d.ts} +9 -3
  198. package/dist/{divine-shield.js → keywords/divine-shield.js} +17 -4
  199. package/dist/keywords/divine-shield.js.map +1 -0
  200. package/dist/keywords/reborn.d.ts +10 -0
  201. package/dist/keywords/reborn.js +22 -0
  202. package/dist/keywords/reborn.js.map +1 -0
  203. package/dist/keywords/stealth.d.ts +10 -0
  204. package/dist/keywords/stealth.js +22 -0
  205. package/dist/keywords/stealth.js.map +1 -0
  206. package/dist/keywords/taunt.d.ts +10 -0
  207. package/dist/keywords/taunt.js +22 -0
  208. package/dist/keywords/taunt.js.map +1 -0
  209. package/dist/keywords/venomous.d.ts +10 -0
  210. package/dist/keywords/venomous.js +33 -0
  211. package/dist/keywords/venomous.js.map +1 -0
  212. package/dist/keywords/windfury.d.ts +10 -0
  213. package/dist/keywords/windfury.js +22 -0
  214. package/dist/keywords/windfury.js.map +1 -0
  215. package/dist/simulate-bgs-battle.d.ts +2 -2
  216. package/dist/simulate-bgs-battle.js +19 -2
  217. package/dist/simulate-bgs-battle.js.map +1 -1
  218. package/dist/simulation/add-minion-to-board.d.ts +16 -0
  219. package/dist/simulation/add-minion-to-board.js +40 -11
  220. package/dist/simulation/add-minion-to-board.js.map +1 -1
  221. package/dist/simulation/after-attack.js +2 -1
  222. package/dist/simulation/after-attack.js.map +1 -1
  223. package/dist/simulation/attack.js +7 -24
  224. package/dist/simulation/attack.js.map +1 -1
  225. package/dist/simulation/auras.d.ts +1 -1
  226. package/dist/simulation/auras.js +21 -15
  227. package/dist/simulation/auras.js.map +1 -1
  228. package/dist/simulation/avenge.d.ts +7 -0
  229. package/dist/simulation/avenge.js +223 -229
  230. package/dist/simulation/avenge.js.map +1 -1
  231. package/dist/simulation/battlecries.d.ts +8 -0
  232. package/dist/simulation/battlecries.js +634 -609
  233. package/dist/simulation/battlecries.js.map +1 -1
  234. package/dist/simulation/blood-gems.js +1 -1
  235. package/dist/simulation/blood-gems.js.map +1 -1
  236. package/dist/simulation/cards-in-hand.d.ts +7 -1
  237. package/dist/simulation/cards-in-hand.js +14 -0
  238. package/dist/simulation/cards-in-hand.js.map +1 -1
  239. package/dist/simulation/damage-effects.js +1 -1
  240. package/dist/simulation/damage-effects.js.map +1 -1
  241. package/dist/simulation/deathrattle-effects.d.ts +1 -1
  242. package/dist/simulation/deathrattle-effects.js +498 -516
  243. package/dist/simulation/deathrattle-effects.js.map +1 -1
  244. package/dist/simulation/deathrattle-on-trigger.d.ts +1 -0
  245. package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
  246. package/dist/simulation/deathrattle-spawns.d.ts +2 -0
  247. package/dist/simulation/deathrattle-spawns.js +324 -384
  248. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  249. package/dist/simulation/deathrattle-utils.js +1 -1
  250. package/dist/simulation/deathrattle-utils.js.map +1 -1
  251. package/dist/simulation/frenzy.js +1 -1
  252. package/dist/simulation/frenzy.js.map +1 -1
  253. package/dist/simulation/magnetize.js.map +1 -1
  254. package/dist/simulation/on-attack.d.ts +13 -1
  255. package/dist/simulation/on-attack.js +21 -1
  256. package/dist/simulation/on-attack.js.map +1 -1
  257. package/dist/simulation/on-being-attacked.js +7 -4
  258. package/dist/simulation/on-being-attacked.js.map +1 -1
  259. package/dist/simulation/simulator.js +1 -1
  260. package/dist/simulation/simulator.js.map +1 -1
  261. package/dist/simulation/start-of-combat/soc-action-processor.js +6 -4
  262. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  263. package/dist/simulation/stats.d.ts +8 -0
  264. package/dist/simulation/stats.js +21 -4
  265. package/dist/simulation/stats.js.map +1 -1
  266. package/dist/temp-card-ids.d.ts +70 -0
  267. package/dist/temp-card-ids.js.map +1 -1
  268. package/dist/utils.d.ts +0 -1
  269. package/dist/utils.js +30 -36
  270. package/dist/utils.js.map +1 -1
  271. package/package.json +2 -2
  272. package/dist/divine-shield.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forest-rover.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/forest-rover.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AACjF,qDAAwD;AAI3C,QAAA,WAAW,GAAyC;IAChE,OAAO,EAAE,gCAAoD;IAC7D,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,oBAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAA,4CAAuB,iBAA0B,cAAc,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,oBAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAoD,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;aACrG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ForestRover: DeathrattleSpawnCard & BattlecryCard = {\r\n\tcardIds: [TempCardIds.ForestRover, TempCardIds.ForestRover_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === TempCardIds.ForestRover_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(TempCardIds.BeetleToken, numberOfSpawns, input);\r\n\t},\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.ForestRover_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.BeetleAttackBuff = input.hero.globalInfo.BeetleAttackBuff + 2 * mult;\r\n\t\tinput.hero.globalInfo.BeetleHealthBuff = input.hero.globalInfo.BeetleHealthBuff + 1 * mult;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => [TempCardIds.BeetleToken, TempCardIds.BeetleToken_G].includes(e.cardId as TempCardIds))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 2 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { BattlecryCard } from '../../card.interface';
2
+ export declare const FountainChiller: BattlecryCard;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FountainChiller = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../services/utils");
6
+ const stats_1 = require("../../../simulation/stats");
7
+ const utils_2 = require("../../../utils");
8
+ const cards_data_1 = require("../../cards-data");
9
+ exports.FountainChiller = {
10
+ cardIds: ["FountainChiller", "FountainChiller_G"],
11
+ battlecry: (minion, input) => {
12
+ const mult = minion.cardId === "FountainChiller_G" ? 2 : 1;
13
+ let totalKeywords = 0;
14
+ for (const bonusKeyword of cards_data_1.validBonusKeywords) {
15
+ if (input.board.some((e) => (0, cards_data_1.hasKeyword)(e, bonusKeyword))) {
16
+ totalKeywords++;
17
+ }
18
+ }
19
+ const candidates = input.board.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.allCards));
20
+ const target = (0, utils_1.pickRandom)(candidates);
21
+ if (!!target) {
22
+ (0, stats_1.modifyStats)(target, totalKeywords * mult, totalKeywords * mult, input.board, input.hero, input.gameState);
23
+ input.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);
24
+ }
25
+ },
26
+ };
27
+ //# sourceMappingURL=fountain-chiller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fountain-chiller.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/fountain-chiller.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AAErD,qDAAwD;AAExD,0CAAiD;AAEjD,iDAAkE;AAErD,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE,wCAA4D;IACrE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,YAAY,IAAI,+BAAkB,EAAE;YAC9C,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE;gBACzD,aAAa,EAAE,CAAC;aAChB;SACD;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACrE,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EAAC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,aAAa,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1G,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { 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 { TempCardIds } from '../../../temp-card-ids';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\nimport { hasKeyword, validBonusKeywords } from '../../cards-data';\r\n\r\nexport const FountainChiller: BattlecryCard = {\r\n\tcardIds: [TempCardIds.FountainChiller, TempCardIds.FountainChiller_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.FountainChiller_G ? 2 : 1;\r\n\t\tlet totalKeywords = 0;\r\n\t\tfor (const bonusKeyword of validBonusKeywords) {\r\n\t\t\tif (input.board.some((e) => hasKeyword(e, bonusKeyword))) {\r\n\t\t\t\ttotalKeywords++;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst candidates = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = pickRandom(candidates);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(target, totalKeywords * mult, totalKeywords * mult, input.board, input.hero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { EndOfTurnCard } from '../../card.interface';
2
+ export declare const GemRat: EndOfTurnCard;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GemRat = void 0;
4
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
+ exports.GemRat = {
6
+ cardIds: ["", ""],
7
+ endOfTurn: (minion, input) => {
8
+ const cards = minion.cardId === "" ? ["", ""] : [""];
9
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cards, input.gameState);
10
+ },
11
+ };
12
+ //# sourceMappingURL=gem-rat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gem-rat.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/gem-rat.ts"],"names":[],"mappings":";;;AACA,qEAAmE;AAItD,QAAA,MAAM,GAAkB;IACpC,OAAO,EAAE,QAA0C;IACnD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,KAAK,GACV,MAAM,CAAC,MAAM,OAAyB,CAAC,CAAC,CAAC,QAAwC,CAAC,CAAC,CAAC,IAAoB,CAAC;QAC1G,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const GemRat: EndOfTurnCard = {\r\n\tcardIds: [TempCardIds.GemRat, TempCardIds.GemRat_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst cards =\r\n\t\t\tminion.cardId === TempCardIds.GemRat_G ? [TempCardIds.GemDay, TempCardIds.GemDay] : [TempCardIds.GemDay];\r\n\t\taddCardsInHand(input.hero, input.board, cards, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { BattlecryCard, DeathrattleEffectCard } from '../../card.interface';
2
+ export declare const GentleDjinni: BattlecryCard & DeathrattleEffectCard;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GentleDjinni = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
+ exports.GentleDjinni = {
7
+ cardIds: ["BGS_121", "TB_BaconUps_165"],
8
+ battlecry: (minion, input) => {
9
+ const cards = [];
10
+ const numberOfCards = minion.cardId === "TB_BaconUps_165" ? 2 : 1;
11
+ for (let i = 0; i < numberOfCards; i++) {
12
+ cards.push((0, utils_1.pickRandom)(input.gameState.cardsData.gentleDjinniSpawns));
13
+ }
14
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cards, input.gameState);
15
+ },
16
+ deathrattleEffect: (minion, input) => {
17
+ const cards = [];
18
+ const numberOfCards = minion.cardId === "TB_BaconUps_165" ? 2 : 1;
19
+ for (let i = 0; i < numberOfCards; i++) {
20
+ cards.push((0, utils_1.pickRandom)(input.gameState.cardsData.gentleDjinniSpawns));
21
+ }
22
+ (0, cards_in_hand_1.addCardsInHand)(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cards, input.gameState);
23
+ },
24
+ };
25
+ //# sourceMappingURL=gentle-djinni.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gentle-djinni.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/gentle-djinni.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,qEAAmE;AAItD,QAAA,YAAY,GAA0C;IAClE,OAAO,EAAE,8BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IACD,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAClG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } 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 { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleEffectCard } from '../../card.interface';\r\n\r\nexport const GentleDjinni: BattlecryCard & DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.GentleDjinni_BGS_121, CardIds.GentleDjinni_TB_BaconUps_165],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.gentleDjinniSpawns));\r\n\t\t}\r\n\t\taddCardsInHand(input.hero, input.board, cards, input.gameState);\r\n\t},\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.gentleDjinniSpawns));\r\n\t\t}\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cards, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleEffectCard } from '../../card.interface';
2
+ export declare const GoldrinnTheGreatWolf: DeathrattleEffectCard;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoldrinnTheGreatWolf = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../utils");
6
+ exports.GoldrinnTheGreatWolf = {
7
+ cardIds: ["BGS_018", "TB_BaconUps_085"],
8
+ deathrattleEffect: (minion, input) => {
9
+ const goldrinnBuff = minion.cardId === "TB_BaconUps_085" ? 6 : 3;
10
+ (0, utils_1.addStatsToBoard)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, goldrinnBuff, goldrinnBuff, input.gameState, reference_data_1.Race[reference_data_1.Race.BEAST]);
11
+ input.boardWithDeadEntityHero.globalInfo.GoldrinnBuffAtk += goldrinnBuff;
12
+ input.boardWithDeadEntityHero.globalInfo.GoldrinnBuffHealth += goldrinnBuff;
13
+ },
14
+ };
15
+ //# sourceMappingURL=goldrinn-the-great-wolf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goldrinn-the-great-wolf.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/goldrinn-the-great-wolf.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAGpC,QAAA,oBAAoB,GAA0B;IAC1D,OAAO,EAAE,8BAAoF;IAC7F,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,sBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,YAAY,EACZ,YAAY,EACZ,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,eAAe,IAAI,YAAY,CAAC;QACzE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,kBAAkB,IAAI,YAAY,CAAC;IAC7E,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nexport const GoldrinnTheGreatWolf: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.GoldrinnTheGreatWolf_BGS_018, CardIds.GoldrinnTheGreatWolf_TB_BaconUps_085],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst goldrinnBuff = minion.cardId === CardIds.GoldrinnTheGreatWolf_TB_BaconUps_085 ? 6 : 3;\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\tgoldrinnBuff,\r\n\t\t\tgoldrinnBuff,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffAtk += goldrinnBuff;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffHealth += goldrinnBuff;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { BattlecryCard } from '../../card.interface';
2
+ export declare const GrittyHeadhunter: BattlecryCard;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrittyHeadhunter = void 0;
4
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
+ exports.GrittyHeadhunter = {
6
+ cardIds: ["GrittyHeadhunter", "GrittyHeadhunter_G"],
7
+ battlecry: (entity, input) => {
8
+ const cards = entity.cardId === "GrittyHeadhunter_G"
9
+ ? ["MaraudersContract", "MaraudersContract"]
10
+ : ["MaraudersContract"];
11
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cards, input.gameState);
12
+ },
13
+ };
14
+ //# sourceMappingURL=gritty-headhunter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gritty-headhunter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/gritty-headhunter.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0CAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,KAAK,GACV,MAAM,CAAC,MAAM,yBAAmC;YAC/C,CAAC,CAAC,0CAA8D;YAChE,CAAC,CAAC,qBAA+B,CAAC;QACpC,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const GrittyHeadhunter: BattlecryCard = {\r\n\tcardIds: [TempCardIds.GrittyHeadhunter, TempCardIds.GrittyHeadhunter_G],\r\n\tbattlecry: (entity: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst cards =\r\n\t\t\tentity.cardId === TempCardIds.GrittyHeadhunter_G\r\n\t\t\t\t? [TempCardIds.MaraudersContract, TempCardIds.MaraudersContract]\r\n\t\t\t\t: [TempCardIds.MaraudersContract];\r\n\t\taddCardsInHand(input.hero, input.board, cards, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { BattlecryCard } from '../../card.interface';
2
+ export declare const Hackerfin: BattlecryCard;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Hackerfin = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ const cards_data_1 = require("../../cards-data");
6
+ exports.Hackerfin = {
7
+ cardIds: ["Hackerfin", "Hackerfin_G"],
8
+ battlecry: (minion, input) => {
9
+ for (const entity of input.board) {
10
+ const mult = minion.cardId === "Hackerfin_G" ? 2 : 1;
11
+ let totalKeywords = 0;
12
+ for (const bonusKeyword of cards_data_1.validBonusKeywords) {
13
+ if ((0, cards_data_1.hasKeyword)(entity, bonusKeyword)) {
14
+ totalKeywords++;
15
+ }
16
+ }
17
+ (0, stats_1.modifyStats)(minion, totalKeywords * mult * 2, totalKeywords * mult * 2, input.board, input.hero, input.gameState);
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=hackerfin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hackerfin.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hackerfin.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAGxD,iDAAkE;AAErD,QAAA,SAAS,GAAkB;IACvC,OAAO,EAAE,4BAAgD;IACzD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,MAAM,YAAY,IAAI,+BAAkB,EAAE;gBAC9C,IAAI,IAAA,uBAAU,EAAC,MAAM,EAAE,YAAY,CAAC,EAAE;oBACrC,aAAa,EAAE,CAAC;iBAChB;aACD;YACD,IAAA,mBAAW,EACV,MAAM,EACN,aAAa,GAAG,IAAI,GAAG,CAAC,EACxB,aAAa,GAAG,IAAI,GAAG,CAAC,EACxB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { BattlecryCard } from '../../card.interface';\r\nimport { hasKeyword, validBonusKeywords } from '../../cards-data';\r\n\r\nexport const Hackerfin: BattlecryCard = {\r\n\tcardIds: [TempCardIds.Hackerfin, TempCardIds.Hackerfin_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tfor (const entity of input.board) {\r\n\t\t\tconst mult = minion.cardId === TempCardIds.Hackerfin_G ? 2 : 1;\r\n\t\t\tlet totalKeywords = 0;\r\n\t\t\tfor (const bonusKeyword of validBonusKeywords) {\r\n\t\t\t\tif (hasKeyword(entity, bonusKeyword)) {\r\n\t\t\t\t\ttotalKeywords++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\ttotalKeywords * mult * 2,\r\n\t\t\t\ttotalKeywords * mult * 2,\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"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleSpawnCard } from '../../card.interface';
2
+ export declare const HandlessForsaken: DeathrattleSpawnCard;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HandlessForsaken = void 0;
4
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
+ exports.HandlessForsaken = {
6
+ cardIds: ["BG25_010", "BG25_010_G"],
7
+ deathrattleSpawn: (minion, input) => {
8
+ const mult = minion.cardId === "BG25_010" ? 1 : 2;
9
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG25_010t", mult, input);
10
+ },
11
+ };
12
+ //# sourceMappingURL=handless-forsaken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handless-forsaken.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/handless-forsaken.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,IAAA,4CAAuB,eAAsD,IAAI,EAAE,KAAK,CAAC,CAAC;IAClG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\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 HandlessForsaken: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.HandlessForsaken_BG25_010, CardIds.HandlessForsaken_BG25_010_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.HandlessForsaken_BG25_010 ? 1 : 2;\r\n\t\treturn simplifiedSpawnEntities(CardIds.HandlessForsaken_HelpingHandToken_BG25_010t, mult, input);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleSpawnCard } from '../../card.interface';
2
+ export declare const HarmlessBonehead: DeathrattleSpawnCard;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HarmlessBonehead = void 0;
4
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
+ exports.HarmlessBonehead = {
6
+ cardIds: ["BG28_300", "BG28_300_G"],
7
+ deathrattleSpawn: (minion, input) => {
8
+ const mult = minion.cardId === "BG28_300_G" ? 2 : 1;
9
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG_ICC_026t", 2 * mult, input);
10
+ },
11
+ };
12
+ //# sourceMappingURL=harmless-bonehead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harmless-bonehead.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/harmless-bonehead.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,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,OAAO,IAAA,4CAAuB,iBAAwB,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\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 HarmlessBonehead: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.HarmlessBonehead_BG28_300, CardIds.HarmlessBonehead_BG28_300_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.HarmlessBonehead_BG28_300_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(CardIds.SkeletonToken, 2 * mult, input);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnAttackCard } from '../../card.interface';
2
+ export declare const HoloRover: OnAttackCard;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HoloRover = void 0;
4
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
+ exports.HoloRover = {
6
+ cardIds: ["HoloRover", "HoloRover_G"],
7
+ onAttack: (minion, input) => {
8
+ const numberOfCard = minion.cardId === "HoloRover_G" ? 2 : 1;
9
+ for (let i = 0; i < numberOfCard; i++) {
10
+ const magneticMech = input.gameState.cardsData.getRandomMechToMagnetize(input.attackingHero.tavernTier);
11
+ (0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, [magneticMech], input.gameState);
12
+ }
13
+ return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
14
+ },
15
+ };
16
+ //# sourceMappingURL=holo-rover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holo-rover.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/holo-rover.ts"],"names":[],"mappings":";;;AACA,qEAAmE;AAKtD,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,4BAAgD;IACzD,QAAQ,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QACjH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,kBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACxG,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3F;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const HoloRover: OnAttackCard = {\r\n\tcardIds: [TempCardIds.HoloRover, TempCardIds.HoloRover_G],\r\n\tonAttack: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tconst numberOfCard = minion.cardId === TempCardIds.HoloRover_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCard; i++) {\r\n\t\t\tconst magneticMech = input.gameState.cardsData.getRandomMechToMagnetize(input.attackingHero.tavernTier);\r\n\t\t\taddCardsInHand(input.attackingHero, input.attackingBoard, [magneticMech], input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,5 +1,2 @@
1
- import { BoardEntity } from '../../../board-entity';
2
- import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
- export declare const HummingBird: {
4
- startOfCombat: (minion: BoardEntity, input: SoCInput) => boolean;
5
- };
1
+ import { StartOfCombatCard } from '../../card.interface';
2
+ export declare const HummingBird: StartOfCombatCard;
@@ -5,6 +5,7 @@ const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const utils_1 = require("../../../utils");
6
6
  const attackGranted = 1;
7
7
  exports.HummingBird = {
8
+ cardIds: ["BG26_805", "BG26_805_G"],
8
9
  startOfCombat: (minion, input) => {
9
10
  const multiplier = minion.cardId === "BG26_805_G" ? 2 : 1;
10
11
  (0, utils_1.addStatsToBoard)(minion, input.playerBoard, input.playerEntity, attackGranted * multiplier, 0, input.gameState, reference_data_1.Race[reference_data_1.Race.BEAST]);
@@ -1 +1 @@
1
- {"version":3,"file":"humming-bird.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/humming-bird.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAEjD,MAAM,aAAa,GAAG,CAAC,CAAC;AAEX,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,aAAa,GAAG,UAAU,EAC1B,CAAC,EACD,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,IAAI,aAAa,GAAG,UAAU,CAAC;QAC5E,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addStatsToBoard } from '../../../utils';\r\n\r\nconst attackGranted = 1;\r\n\r\nexport const HummingBird = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.HummingBird_BG26_805_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tattackGranted * multiplier,\r\n\t\t\t0,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.playerEntity.globalInfo.GoldrinnBuffAtk += attackGranted * multiplier;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"humming-bird.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/humming-bird.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAGjD,MAAM,aAAa,GAAG,CAAC,CAAC;AAEX,QAAA,WAAW,GAAsB;IAC7C,OAAO,EAAE,0BAA8D;IACvE,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,aAAa,GAAG,UAAU,EAC1B,CAAC,EACD,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,IAAI,aAAa,GAAG,UAAU,CAAC;QAC5E,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nconst attackGranted = 1;\r\n\r\nexport const HummingBird: StartOfCombatCard = {\r\n\tcardIds: [CardIds.HummingBird_BG26_805, CardIds.HummingBird_BG26_805_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.HummingBird_BG26_805_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tattackGranted * multiplier,\r\n\t\t\t0,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.playerEntity.globalInfo.GoldrinnBuffAtk += attackGranted * multiplier;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterOtherSpawnedCard } from '../../card.interface';
2
+ export declare const HungrySnapjaw: AfterOtherSpawnedCard;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HungrySnapjaw = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const stats_1 = require("../../../simulation/stats");
6
+ const utils_1 = require("../../../utils");
7
+ exports.HungrySnapjaw = {
8
+ cardIds: ["BG26_370", "BG26_370_G"],
9
+ afterOtherSpawned: (minion, input) => {
10
+ const mult = minion.cardId === "BG26_370_G" ? 2 : 1;
11
+ if ((0, utils_1.hasCorrectTribe)(input.spawned, input.playerEntity, reference_data_1.Race.BEAST, input.gameState.allCards) &&
12
+ minion.entityId !== input.spawned.entityId) {
13
+ (0, stats_1.modifyStats)(minion, 0, 1 * mult, input.playerBoard, input.playerEntity, input.gameState);
14
+ }
15
+ },
16
+ };
17
+ //# sourceMappingURL=hungry-snapjaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hungry-snapjaw.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hungry-snapjaw.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,0BAAkE;IAC3E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IACC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxF,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,CAAC,QAAQ,EACzC;YACD,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACzF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, 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 { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const HungrySnapjaw: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.HungrySnapjaw_BG26_370, CardIds.HungrySnapjaw_BG26_370_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.HungrySnapjaw_BG26_370_G ? 2 : 1;\r\n\t\tif (\r\n\t\t\thasCorrectTribe(input.spawned, input.playerEntity, Race.BEAST, input.gameState.allCards) &&\r\n\t\t\tminion.entityId !== input.spawned.entityId\r\n\t\t) {\r\n\t\t\tmodifyStats(minion, 0, 1 * mult, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnDivineShieldUpdatedCard, OnRebornUpdatedCard, OnStealthUpdatedCard, OnTauntUpdatedCard, OnVenomousUpdatedCard, OnWindfuryUpdatedCard } from '../../card.interface';
2
+ export declare const ImplantSubject: OnTauntUpdatedCard & OnDivineShieldUpdatedCard & OnVenomousUpdatedCard & OnWindfuryUpdatedCard & OnStealthUpdatedCard & OnRebornUpdatedCard;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImplantSubject = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ exports.ImplantSubject = {
6
+ cardIds: ["ImplantSubject", "ImplantSubject_G"],
7
+ onTauntUpdated: (entity, impactedEntity, previousValue, input) => {
8
+ if (previousValue && !impactedEntity.taunt) {
9
+ updateEntity(entity, input.board, input.hero, input.gameState);
10
+ }
11
+ },
12
+ onDivineShieldUpdated: (entity, impactedEntity, previousValue, input) => {
13
+ if (previousValue && !impactedEntity.divineShield) {
14
+ updateEntity(entity, input.board, input.hero, input.gameState);
15
+ }
16
+ },
17
+ onRebornUpdated: (entity, impactedEntity, previousValue, input) => {
18
+ if (previousValue && !impactedEntity.reborn) {
19
+ updateEntity(entity, input.board, input.hero, input.gameState);
20
+ }
21
+ },
22
+ onStealthUpdated: (entity, impactedEntity, previousValue, input) => {
23
+ if (previousValue && !impactedEntity.stealth) {
24
+ updateEntity(entity, input.board, input.hero, input.gameState);
25
+ }
26
+ },
27
+ onVenomousUpdated: (entity, impactedEntity, previousValue, input) => {
28
+ if (previousValue && !impactedEntity.venomous) {
29
+ updateEntity(entity, input.board, input.hero, input.gameState);
30
+ }
31
+ },
32
+ onWindfuryUpdated: (entity, impactedEntity, previousValue, input) => {
33
+ if (previousValue && !impactedEntity.windfury) {
34
+ updateEntity(entity, input.board, input.hero, input.gameState);
35
+ }
36
+ },
37
+ };
38
+ const updateEntity = (entity, board, hero, gameState) => {
39
+ const mult = entity.cardId === "ImplantSubject_G" ? 2 : 1;
40
+ (0, stats_1.modifyStats)(entity, mult * 2, mult * 2, board, hero, gameState);
41
+ };
42
+ //# sourceMappingURL=implant-subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implant-subject.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/implant-subject.ts"],"names":[],"mappings":";;;AAMA,qDAAwD;AAW3C,QAAA,cAAc,GAKJ;IACtB,OAAO,EAAE,sCAA0D;IACnE,cAAc,EAAE,CACf,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA0B,EACzB,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC3C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,qBAAqB,EAAE,CACtB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAAiC,EAChC,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAClD,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,eAAe,EAAE,CAChB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAC5C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,gBAAgB,EAAE,CACjB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC7C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;IACD,iBAAiB,EAAE,CAClB,MAAmB,EACnB,cAA2B,EAC3B,aAAsB,EACtB,KAA2B,EAC1B,EAAE;QACH,IAAI,aAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YAC9C,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC/D;IACF,CAAC;CACD,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,IAAqB,EAAE,SAAwB,EAAE,EAAE;IACnH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACjE,CAAC,CAAC","sourcesContent":["import { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnDivineShieldUpdatedInput } from '../../../keywords/divine-shield';\r\nimport { OnRebornUpdatedInput } from '../../../keywords/reborn';\r\nimport { OnTauntUpdatedInput } from '../../../keywords/taunt';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport {\r\n\tOnDivineShieldUpdatedCard,\r\n\tOnRebornUpdatedCard,\r\n\tOnStealthUpdatedCard,\r\n\tOnTauntUpdatedCard,\r\n\tOnVenomousUpdatedCard,\r\n\tOnWindfuryUpdatedCard,\r\n} from '../../card.interface';\r\n\r\nexport const ImplantSubject: OnTauntUpdatedCard &\r\n\tOnDivineShieldUpdatedCard &\r\n\tOnVenomousUpdatedCard &\r\n\tOnWindfuryUpdatedCard &\r\n\tOnStealthUpdatedCard &\r\n\tOnRebornUpdatedCard = {\r\n\tcardIds: [TempCardIds.ImplantSubject, TempCardIds.ImplantSubject_G],\r\n\tonTauntUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnTauntUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.taunt) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonDivineShieldUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnDivineShieldUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.divineShield) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonRebornUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.reborn) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonStealthUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.stealth) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonVenomousUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.venomous) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n\tonWindfuryUpdated: (\r\n\t\tentity: BoardEntity,\r\n\t\timpactedEntity: BoardEntity,\r\n\t\tpreviousValue: boolean,\r\n\t\tinput: OnRebornUpdatedInput,\r\n\t) => {\r\n\t\tif (previousValue && !impactedEntity.windfury) {\r\n\t\t\tupdateEntity(entity, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst updateEntity = (entity: BoardEntity, board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => {\r\n\tconst mult = entity.cardId === TempCardIds.ImplantSubject_G ? 2 : 1;\r\n\tmodifyStats(entity, mult * 2, mult * 2, board, hero, gameState);\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleSpawnCard } from '../../card.interface';
2
+ export declare const IndomitableMount: DeathrattleSpawnCard;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IndomitableMount = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
6
+ exports.IndomitableMount = {
7
+ cardIds: ["BG30_105", "BG30_105_G"],
8
+ deathrattleSpawn: (minion, input) => {
9
+ const tiersToSummon = [3, 4, 5];
10
+ const output = [];
11
+ for (const tier of tiersToSummon) {
12
+ const candidates = input.gameState.cardsData.beastSpawns.filter((id) => input.gameState.allCards.getCard(id).techLevel === tier);
13
+ let spawnId = (0, utils_1.pickRandom)(candidates);
14
+ if (minion.cardId === "BG30_105_G") {
15
+ const premiumDbfId = input.gameState.allCards.getCard(spawnId).battlegroundsPremiumDbfId;
16
+ spawnId = input.gameState.allCards.getCard(premiumDbfId).id;
17
+ }
18
+ output.push(...(0, deathrattle_spawns_1.simplifiedSpawnEntities)(spawnId, 1, input));
19
+ }
20
+ return output;
21
+ },
22
+ };
23
+ //# sourceMappingURL=indomitable-mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indomitable-mount.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/indomitable-mount.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,+EAAiF;AAGpE,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAC9D,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,IAAI,CAC/D,CAAC;YACF,IAAI,OAAO,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,iBAAwC,EAAE;gBAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC;gBACzF,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;aAC5D;YACD,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 '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\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 IndomitableMount: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.IndomitableMount_BG30_105, CardIds.IndomitableMount_BG30_105_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst tiersToSummon = [3, 4, 5];\r\n\t\tconst output = [];\r\n\t\tfor (const tier of tiersToSummon) {\r\n\t\t\tconst candidates = input.gameState.cardsData.beastSpawns.filter(\r\n\t\t\t\t(id) => input.gameState.allCards.getCard(id).techLevel === tier,\r\n\t\t\t);\r\n\t\t\tlet spawnId = pickRandom(candidates);\r\n\t\t\tif (minion.cardId === CardIds.IndomitableMount_BG30_105_G) {\r\n\t\t\t\tconst premiumDbfId = input.gameState.allCards.getCard(spawnId).battlegroundsPremiumDbfId;\r\n\t\t\t\tspawnId = input.gameState.allCards.getCard(premiumDbfId).id;\r\n\t\t\t}\r\n\t\t\toutput.push(...simplifiedSpawnEntities(spawnId, 1, input));\r\n\t\t}\r\n\t\treturn output;\r\n\t},\r\n};\r\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InterrogatorWhitemane = void 0;
4
+ const taunt_1 = require("../../../keywords/taunt");
4
5
  const utils_1 = require("../../../services/utils");
5
6
  exports.InterrogatorWhitemane = {
6
7
  startOfCombat: (minion, input) => {
@@ -10,7 +11,7 @@ exports.InterrogatorWhitemane = {
10
11
  for (let i = 0; i < numberOfPicks; i++) {
11
12
  const target = (0, utils_1.pickRandom)(validTargets);
12
13
  if (!!target) {
13
- castImpure(target, minion, input.playerBoard, input.gameState.spectator);
14
+ castImpure(target, minion, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
14
15
  const targetIndex = validTargets.findIndex((e) => e.entityId === target.entityId);
15
16
  validTargets.splice(targetIndex, 1);
16
17
  }
@@ -19,15 +20,15 @@ exports.InterrogatorWhitemane = {
19
20
  return true;
20
21
  },
21
22
  };
22
- const castImpure = (entity, source, board, spectator) => {
23
+ const castImpure = (entity, source, board, hero, otherHero, gameState) => {
23
24
  var _a;
24
25
  if (!entity) {
25
26
  return;
26
27
  }
27
28
  const multiplier = source.cardId === "BG24_704_G" ? 3 : 2;
28
- entity.taunt = true;
29
+ (0, taunt_1.updateTaunt)(entity, true, board, hero, otherHero, gameState);
29
30
  entity.damageMultiplier = (_a = entity.damageMultiplier) !== null && _a !== void 0 ? _a : 1;
30
31
  entity.damageMultiplier *= multiplier;
31
- spectator.registerPowerTarget(source, entity, board, null, null);
32
+ gameState.spectator.registerPowerTarget(source, entity, board, null, null);
32
33
  };
33
34
  //# sourceMappingURL=interrogator-whitemane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interrogator-whitemane.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/interrogator-whitemane.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAIxC,QAAA,qBAAqB,GAAG;IACpC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC9D,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACb,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACzE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClF,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACpC;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,MAAmB,EAAE,KAAoB,EAAE,SAAoB,EAAE,EAAE;;IAC3G,IAAI,CAAC,MAAM,EAAE;QACZ,OAAO;KACP;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACvD,MAAM,CAAC,gBAAgB,IAAI,UAAU,CAAC;IACtC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { Spectator } from '../../../simulation/spectator/spectator';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const InterrogatorWhitemane = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tif (input.opponentBoard.length > 0) {\r\n\t\t\tconst validTargets = input.opponentBoard.filter(\r\n\t\t\t\t(e) => input.gameState.cardsData.getTavernLevel(e.cardId) >= 5,\r\n\t\t\t);\r\n\t\t\tconst numberOfPicks = minion.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < numberOfPicks; i++) {\r\n\t\t\t\tconst target = pickRandom(validTargets);\r\n\t\t\t\tif (!!target) {\r\n\t\t\t\t\tcastImpure(target, minion, input.playerBoard, input.gameState.spectator);\r\n\t\t\t\t\tconst targetIndex = validTargets.findIndex((e) => e.entityId === target.entityId);\r\n\t\t\t\t\tvalidTargets.splice(targetIndex, 1);\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\r\nconst castImpure = (entity: BoardEntity, source: BoardEntity, board: BoardEntity[], spectator: Spectator) => {\r\n\tif (!entity) {\r\n\t\treturn;\r\n\t}\r\n\tconst multiplier = source.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 3 : 2;\r\n\tentity.taunt = true;\r\n\tentity.damageMultiplier = entity.damageMultiplier ?? 1;\r\n\tentity.damageMultiplier *= multiplier;\r\n\tspectator.registerPowerTarget(source, entity, board, null, null);\r\n};\r\n"]}
1
+ {"version":3,"file":"interrogator-whitemane.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/interrogator-whitemane.ts"],"names":[],"mappings":";;;AAGA,mDAAsD;AACtD,mDAAqD;AAIxC,QAAA,qBAAqB,GAAG;IACpC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC9D,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACb,UAAU,CACT,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;oBACF,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClF,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACpC;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AAEF,MAAM,UAAU,GAAG,CAClB,MAAmB,EACnB,MAAmB,EACnB,KAAoB,EACpB,IAAqB,EACrB,SAA0B,EAC1B,SAAwB,EACvB,EAAE;;IACH,IAAI,CAAC,MAAM,EAAE;QACZ,OAAO;KACP;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACvD,MAAM,CAAC,gBAAgB,IAAI,UAAU,CAAC;IACtC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5E,CAAC,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const InterrogatorWhitemane = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tif (input.opponentBoard.length > 0) {\r\n\t\t\tconst validTargets = input.opponentBoard.filter(\r\n\t\t\t\t(e) => input.gameState.cardsData.getTavernLevel(e.cardId) >= 5,\r\n\t\t\t);\r\n\t\t\tconst numberOfPicks = minion.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < numberOfPicks; i++) {\r\n\t\t\t\tconst target = pickRandom(validTargets);\r\n\t\t\t\tif (!!target) {\r\n\t\t\t\t\tcastImpure(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\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.opponentEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst targetIndex = validTargets.findIndex((e) => e.entityId === target.entityId);\r\n\t\t\t\t\tvalidTargets.splice(targetIndex, 1);\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\r\nconst castImpure = (\r\n\tentity: BoardEntity,\r\n\tsource: BoardEntity,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tif (!entity) {\r\n\t\treturn;\r\n\t}\r\n\tconst multiplier = source.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 3 : 2;\r\n\tupdateTaunt(entity, true, board, hero, otherHero, gameState);\r\n\tentity.damageMultiplier = entity.damageMultiplier ?? 1;\r\n\tentity.damageMultiplier *= multiplier;\r\n\tgameState.spectator.registerPowerTarget(source, entity, board, null, null);\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AvengeCard } from '../../card.interface';
2
+ export declare const KarmicChameleon: AvengeCard;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KarmicChameleon = void 0;
4
+ const golden_1 = require("../../../simulation/utils/golden");
5
+ const utils_1 = require("../../../utils");
6
+ exports.KarmicChameleon = {
7
+ cardIds: ["BG31_802", "BG31_802_G"],
8
+ baseAvengeValue: (cardId) => 5,
9
+ avenge: (minion, input) => {
10
+ const chameleonIndex = input.board.findIndex((entity) => entity.entityId === minion.entityId);
11
+ if (chameleonIndex > 0) {
12
+ const minionToTheLeft = input.board[chameleonIndex - 1];
13
+ const clone = (0, utils_1.addImpliedMechanics)({
14
+ ...minionToTheLeft,
15
+ lastAffectedByEntity: null,
16
+ definitelyDead: false,
17
+ attackImmediately: false,
18
+ }, input.gameState.cardsData);
19
+ if (minion.cardId === "BG31_802_G") {
20
+ (0, golden_1.makeMinionGolden)(clone, minion, input.board, input.hero, input.otherHero, input.gameState);
21
+ }
22
+ input.gameState.spectator.registerPowerTarget(clone, clone, input.board, input.hero, input.otherHero);
23
+ input.board.splice(chameleonIndex, 1, clone);
24
+ }
25
+ },
26
+ };
27
+ //# sourceMappingURL=karmic-chameleon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karmic-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/karmic-chameleon.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAAqD;AAGxC,QAAA,eAAe,GAAe;IAC1C,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9F,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;gBACC,GAAG,eAAe;gBAClB,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,KAAK;aACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,iBAAuC,EAAE;gBACzD,IAAA,yBAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC3F;YACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACtG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC7C;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { addImpliedMechanics } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const KarmicChameleon: AvengeCard = {\r\n\tcardIds: [CardIds.KarmicChameleon_BG31_802, CardIds.KarmicChameleon_BG31_802_G],\r\n\tbaseAvengeValue: (cardId: string) => 5,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst chameleonIndex = input.board.findIndex((entity) => entity.entityId === minion.entityId);\r\n\t\tif (chameleonIndex > 0) {\r\n\t\t\tconst minionToTheLeft = input.board[chameleonIndex - 1];\r\n\t\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t\t{\r\n\t\t\t\t\t...minionToTheLeft,\r\n\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\t\tattackImmediately: false,\r\n\t\t\t\t},\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t);\r\n\t\t\tif (minion.cardId === CardIds.KarmicChameleon_BG31_802_G) {\r\n\t\t\t\tmakeMinionGolden(clone, minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t\t}\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(clone, clone, input.board, input.hero, input.otherHero);\r\n\t\t\tinput.board.splice(chameleonIndex, 1, clone);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleSpawnCard } from '../../card.interface';
2
+ export declare const Manasaber: DeathrattleSpawnCard;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Manasaber = void 0;
4
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
+ exports.Manasaber = {
6
+ cardIds: ["BG26_800", "BG26_800_G"],
7
+ deathrattleSpawn: (minion, input) => {
8
+ const cublingId = minion.cardId === "BG26_800_G"
9
+ ? "BG26_800_Gt"
10
+ : "BG26_800t";
11
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cublingId, 2, input);
12
+ },
13
+ };
14
+ //# sourceMappingURL=manasaber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manasaber.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/manasaber.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,SAAS,GAAyB;IAC9C,OAAO,EAAE,0BAA0D;IACnE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,SAAS,GACd,MAAM,CAAC,MAAM,iBAAiC;YAC7C,CAAC;YACD,CAAC,YAAyC,CAAC;QAC7C,OAAO,IAAA,4CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\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 Manasaber: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Manasaber_BG26_800, CardIds.Manasaber_BG26_800_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst cublingId =\r\n\t\t\tminion.cardId === CardIds.Manasaber_BG26_800_G\r\n\t\t\t\t? CardIds.Manasaber_CublingToken_BG26_800_Gt\r\n\t\t\t\t: CardIds.Manasaber_CublingToken_BG26_800t;\r\n\t\treturn simplifiedSpawnEntities(cublingId, 2, input);\r\n\t},\r\n};\r\n"]}
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MantidQueen = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const reborn_1 = require("../../../keywords/reborn");
6
+ const taunt_1 = require("../../../keywords/taunt");
7
+ const windfury_1 = require("../../../keywords/windfury");
5
8
  const utils_1 = require("../../../services/utils");
6
9
  const stats_1 = require("../../../simulation/stats");
7
10
  exports.MantidQueen = {
@@ -21,13 +24,13 @@ exports.MantidQueen = {
21
24
  (0, stats_1.modifyStats)(minion, 5, 5, input.playerBoard, input.playerEntity, input.gameState);
22
25
  break;
23
26
  case 'reborn':
24
- minion.reborn = true;
27
+ (0, reborn_1.updateReborn)(minion, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
25
28
  break;
26
29
  case 'taunt':
27
- minion.taunt = true;
30
+ (0, taunt_1.updateTaunt)(minion, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
28
31
  break;
29
32
  case 'windfury':
30
- minion.windfury = true;
33
+ (0, windfury_1.updateWindfury)(minion, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
31
34
  break;
32
35
  }
33
36
  input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);