@firestone-hs/simulate-bgs-battle 1.1.487 → 1.1.489

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 (273) hide show
  1. package/dist/bgs-player-entity.d.ts +2 -1
  2. package/dist/bgs-player-entity.js.map +1 -1
  3. package/dist/cards/card.interface.d.ts +12 -0
  4. package/dist/cards/card.interface.js +3 -0
  5. package/dist/cards/card.interface.js.map +1 -0
  6. package/dist/cards/cards-data.js +6 -0
  7. package/dist/cards/cards-data.js.map +1 -1
  8. package/dist/cards/impl/anomaly/anomalous-twin.d.ts +8 -0
  9. package/dist/cards/impl/anomaly/anomalous-twin.js +24 -0
  10. package/dist/cards/impl/anomaly/anomalous-twin.js.map +1 -0
  11. package/dist/cards/impl/anomaly/blessed-or-blighted.d.ts +5 -0
  12. package/dist/cards/impl/anomaly/blessed-or-blighted.js +16 -0
  13. package/dist/cards/impl/anomaly/blessed-or-blighted.js.map +1 -0
  14. package/dist/cards/impl/hero-power/aim-high.d.ts +5 -0
  15. package/dist/cards/impl/hero-power/aim-high.js +18 -0
  16. package/dist/cards/impl/hero-power/aim-high.js.map +1 -0
  17. package/dist/cards/impl/hero-power/aim-left.d.ts +5 -0
  18. package/dist/cards/impl/hero-power/aim-left.js +16 -0
  19. package/dist/cards/impl/hero-power/aim-left.js.map +1 -0
  20. package/dist/cards/impl/hero-power/aim-low.d.ts +5 -0
  21. package/dist/cards/impl/hero-power/aim-low.js +18 -0
  22. package/dist/cards/impl/hero-power/aim-low.js.map +1 -0
  23. package/dist/cards/impl/hero-power/aim-right.d.ts +5 -0
  24. package/dist/cards/impl/hero-power/aim-right.js +16 -0
  25. package/dist/cards/impl/hero-power/aim-right.js.map +1 -0
  26. package/dist/cards/impl/hero-power/all-will-burn.d.ts +5 -0
  27. package/dist/cards/impl/hero-power/all-will-burn.js +18 -0
  28. package/dist/cards/impl/hero-power/all-will-burn.js.map +1 -0
  29. package/dist/cards/impl/hero-power/earth-invocation.d.ts +5 -0
  30. package/dist/cards/impl/hero-power/earth-invocation.js +13 -0
  31. package/dist/cards/impl/hero-power/earth-invocation.js.map +1 -0
  32. package/dist/cards/impl/hero-power/embrace-your-rage.d.ts +8 -0
  33. package/dist/cards/impl/hero-power/embrace-your-rage.js +26 -0
  34. package/dist/cards/impl/hero-power/embrace-your-rage.js.map +1 -0
  35. package/dist/cards/impl/hero-power/fire-invocation.d.ts +5 -0
  36. package/dist/cards/impl/hero-power/fire-invocation.js +13 -0
  37. package/dist/cards/impl/hero-power/fire-invocation.js.map +1 -0
  38. package/dist/cards/impl/hero-power/fragrant-phylactery.d.ts +8 -0
  39. package/dist/cards/impl/hero-power/fragrant-phylactery.js +25 -0
  40. package/dist/cards/impl/hero-power/fragrant-phylactery.js.map +1 -0
  41. package/dist/cards/impl/hero-power/glorious-gloop.d.ts +5 -0
  42. package/dist/cards/impl/hero-power/glorious-gloop.js +40 -0
  43. package/dist/cards/impl/hero-power/glorious-gloop.js.map +1 -0
  44. package/dist/cards/impl/hero-power/lightning-invocation.d.ts +5 -0
  45. package/dist/cards/impl/hero-power/lightning-invocation.js +13 -0
  46. package/dist/cards/impl/hero-power/lightning-invocation.js.map +1 -0
  47. package/dist/cards/impl/hero-power/rapid-reanimation.d.ts +8 -0
  48. package/dist/cards/impl/hero-power/rapid-reanimation.js +29 -0
  49. package/dist/cards/impl/hero-power/rapid-reanimation.js.map +1 -0
  50. package/dist/cards/impl/hero-power/reborn-rites.d.ts +5 -0
  51. package/dist/cards/impl/hero-power/reborn-rites.js +18 -0
  52. package/dist/cards/impl/hero-power/reborn-rites.js.map +1 -0
  53. package/dist/cards/impl/hero-power/swatting-insects.d.ts +5 -0
  54. package/dist/cards/impl/hero-power/swatting-insects.js +21 -0
  55. package/dist/cards/impl/hero-power/swatting-insects.js.map +1 -0
  56. package/dist/cards/impl/hero-power/tentacular.d.ts +8 -0
  57. package/dist/cards/impl/hero-power/tentacular.js +10 -0
  58. package/dist/cards/impl/hero-power/tentacular.js.map +1 -0
  59. package/dist/cards/impl/hero-power/water-invocation.d.ts +5 -0
  60. package/dist/cards/impl/hero-power/water-invocation.js +13 -0
  61. package/dist/cards/impl/hero-power/water-invocation.js.map +1 -0
  62. package/dist/cards/impl/hero-power/wax-warband.d.ts +5 -0
  63. package/dist/cards/impl/hero-power/wax-warband.js +56 -0
  64. package/dist/cards/impl/hero-power/wax-warband.js.map +1 -0
  65. package/dist/cards/impl/minion/amber-guardian.d.ts +5 -0
  66. package/dist/cards/impl/minion/amber-guardian.js +31 -0
  67. package/dist/cards/impl/minion/amber-guardian.js.map +1 -0
  68. package/dist/cards/impl/minion/audacious-anchor.d.ts +5 -0
  69. package/dist/cards/impl/minion/audacious-anchor.js +25 -0
  70. package/dist/cards/impl/minion/audacious-anchor.js.map +1 -0
  71. package/dist/cards/impl/minion/carbonic-copy.d.ts +5 -0
  72. package/dist/cards/impl/minion/carbonic-copy.js +24 -0
  73. package/dist/cards/impl/minion/carbonic-copy.js.map +1 -0
  74. package/dist/cards/impl/minion/choral-mrrrglr.d.ts +5 -0
  75. package/dist/cards/impl/minion/choral-mrrrglr.js +14 -0
  76. package/dist/cards/impl/minion/choral-mrrrglr.js.map +1 -0
  77. package/dist/cards/impl/minion/corrupted-myrmidon.d.ts +5 -0
  78. package/dist/cards/impl/minion/corrupted-myrmidon.js +13 -0
  79. package/dist/cards/impl/minion/corrupted-myrmidon.js.map +1 -0
  80. package/dist/cards/impl/minion/crabby.d.ts +5 -0
  81. package/dist/cards/impl/minion/crabby.js +18 -0
  82. package/dist/cards/impl/minion/crabby.js.map +1 -0
  83. package/dist/cards/impl/minion/diremuck-forager.d.ts +5 -0
  84. package/dist/cards/impl/minion/diremuck-forager.js +32 -0
  85. package/dist/cards/impl/minion/diremuck-forager.js.map +1 -0
  86. package/dist/cards/impl/minion/elder-taggawag.d.ts +5 -0
  87. package/dist/cards/impl/minion/elder-taggawag.js +19 -0
  88. package/dist/cards/impl/minion/elder-taggawag.js.map +1 -0
  89. package/dist/cards/impl/minion/hawkstrider-herald.d.ts +5 -0
  90. package/dist/cards/impl/minion/hawkstrider-herald.js +27 -0
  91. package/dist/cards/impl/minion/hawkstrider-herald.js.map +1 -0
  92. package/dist/cards/impl/minion/hoarding-hatespawn.d.ts +5 -0
  93. package/dist/cards/impl/minion/hoarding-hatespawn.js +22 -0
  94. package/dist/cards/impl/minion/hoarding-hatespawn.js.map +1 -0
  95. package/dist/cards/impl/minion/humming-bird.d.ts +5 -0
  96. package/dist/cards/impl/minion/humming-bird.js +15 -0
  97. package/dist/cards/impl/minion/humming-bird.js.map +1 -0
  98. package/dist/cards/impl/minion/interrogator-whitemane.d.ts +5 -0
  99. package/dist/cards/impl/minion/interrogator-whitemane.js +33 -0
  100. package/dist/cards/impl/minion/interrogator-whitemane.js.map +1 -0
  101. package/dist/cards/impl/minion/irate-rooster.d.ts +5 -0
  102. package/dist/cards/impl/minion/irate-rooster.js +20 -0
  103. package/dist/cards/impl/minion/irate-rooster.js.map +1 -0
  104. package/dist/cards/impl/minion/mantid-queen.d.ts +5 -0
  105. package/dist/cards/impl/minion/mantid-queen.js +52 -0
  106. package/dist/cards/impl/minion/mantid-queen.js.map +1 -0
  107. package/dist/cards/impl/minion/misfit-dragonling.d.ts +5 -0
  108. package/dist/cards/impl/minion/misfit-dragonling.js +15 -0
  109. package/dist/cards/impl/minion/misfit-dragonling.js.map +1 -0
  110. package/dist/cards/impl/minion/piloted-whirl-o-tron.d.ts +5 -0
  111. package/dist/cards/impl/minion/piloted-whirl-o-tron.js +13 -0
  112. package/dist/cards/impl/minion/piloted-whirl-o-tron.js.map +1 -0
  113. package/dist/cards/impl/minion/prized-promo-drake.d.ts +5 -0
  114. package/dist/cards/impl/minion/prized-promo-drake.js +22 -0
  115. package/dist/cards/impl/minion/prized-promo-drake.js.map +1 -0
  116. package/dist/cards/impl/minion/red-whelp.d.ts +5 -0
  117. package/dist/cards/impl/minion/red-whelp.js +17 -0
  118. package/dist/cards/impl/minion/red-whelp.js.map +1 -0
  119. package/dist/cards/impl/minion/sanctum-rester.d.ts +5 -0
  120. package/dist/cards/impl/minion/sanctum-rester.js +20 -0
  121. package/dist/cards/impl/minion/sanctum-rester.js.map +1 -0
  122. package/dist/cards/impl/minion/sandy.d.ts +5 -0
  123. package/dist/cards/impl/minion/sandy.js +23 -0
  124. package/dist/cards/impl/minion/sandy.js.map +1 -0
  125. package/dist/cards/impl/minion/sky-pirate-flagbearer.d.ts +5 -0
  126. package/dist/cards/impl/minion/sky-pirate-flagbearer.js +24 -0
  127. package/dist/cards/impl/minion/sky-pirate-flagbearer.js.map +1 -0
  128. package/dist/cards/impl/minion/soulsplitter.d.ts +5 -0
  129. package/dist/cards/impl/minion/soulsplitter.js +23 -0
  130. package/dist/cards/impl/minion/soulsplitter.js.map +1 -0
  131. package/dist/cards/impl/minion/sun-screener.d.ts +5 -0
  132. package/dist/cards/impl/minion/sun-screener.js +15 -0
  133. package/dist/cards/impl/minion/sun-screener.js.map +1 -0
  134. package/dist/cards/impl/minion/the-uninvited-guest.d.ts +5 -0
  135. package/dist/cards/impl/minion/the-uninvited-guest.js +24 -0
  136. package/dist/cards/impl/minion/the-uninvited-guest.js.map +1 -0
  137. package/dist/cards/impl/minion/thousandth-paper-drake.d.ts +5 -0
  138. package/dist/cards/impl/minion/thousandth-paper-drake.js +24 -0
  139. package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -0
  140. package/dist/cards/impl/minion/vaelastrasz.d.ts +5 -0
  141. package/dist/cards/impl/minion/vaelastrasz.js +17 -0
  142. package/dist/cards/impl/minion/vaelastrasz.js.map +1 -0
  143. package/dist/cards/impl/minion/yulon-fortune-granter.d.ts +5 -0
  144. package/dist/cards/impl/minion/yulon-fortune-granter.js +26 -0
  145. package/dist/cards/impl/minion/yulon-fortune-granter.js.map +1 -0
  146. package/dist/cards/impl/quest-reward/evil-twin.d.ts +5 -0
  147. package/dist/cards/impl/quest-reward/evil-twin.js +32 -0
  148. package/dist/cards/impl/quest-reward/evil-twin.js.map +1 -0
  149. package/dist/cards/impl/quest-reward/staff-of-origination.d.ts +5 -0
  150. package/dist/cards/impl/quest-reward/staff-of-origination.js +14 -0
  151. package/dist/cards/impl/quest-reward/staff-of-origination.js.map +1 -0
  152. package/dist/cards/impl/quest-reward/stolen-gold.d.ts +5 -0
  153. package/dist/cards/impl/quest-reward/stolen-gold.js +16 -0
  154. package/dist/cards/impl/quest-reward/stolen-gold.js.map +1 -0
  155. package/dist/cards/impl/trinket/artisanal-urn.d.ts +5 -0
  156. package/dist/cards/impl/trinket/artisanal-urn.js +13 -0
  157. package/dist/cards/impl/trinket/artisanal-urn.js.map +1 -0
  158. package/dist/cards/impl/trinket/automaton-portrait.d.ts +5 -0
  159. package/dist/cards/impl/trinket/automaton-portrait.js +15 -0
  160. package/dist/cards/impl/trinket/automaton-portrait.js.map +1 -0
  161. package/dist/cards/impl/trinket/bronze-timepiece.d.ts +5 -0
  162. package/dist/cards/impl/trinket/bronze-timepiece.js +17 -0
  163. package/dist/cards/impl/trinket/bronze-timepiece.js.map +1 -0
  164. package/dist/cards/impl/trinket/emerald-dreamcatcher.d.ts +5 -0
  165. package/dist/cards/impl/trinket/emerald-dreamcatcher.js +18 -0
  166. package/dist/cards/impl/trinket/emerald-dreamcatcher.js.map +1 -0
  167. package/dist/cards/impl/trinket/eternal-portrait.d.ts +5 -0
  168. package/dist/cards/impl/trinket/eternal-portrait.js +19 -0
  169. package/dist/cards/impl/trinket/eternal-portrait.js.map +1 -0
  170. package/dist/cards/impl/trinket/fishy-sticker.d.ts +5 -0
  171. package/dist/cards/impl/trinket/fishy-sticker.js +28 -0
  172. package/dist/cards/impl/trinket/fishy-sticker.js.map +1 -0
  173. package/dist/cards/impl/trinket/hoggy-bank.d.ts +5 -0
  174. package/dist/cards/impl/trinket/hoggy-bank.js +23 -0
  175. package/dist/cards/impl/trinket/hoggy-bank.js.map +1 -0
  176. package/dist/cards/impl/trinket/holly-mallet.d.ts +5 -0
  177. package/dist/cards/impl/trinket/holly-mallet.js +18 -0
  178. package/dist/cards/impl/trinket/holly-mallet.js.map +1 -0
  179. package/dist/cards/impl/trinket/ironforge-anvil.d.ts +5 -0
  180. package/dist/cards/impl/trinket/ironforge-anvil.js +23 -0
  181. package/dist/cards/impl/trinket/ironforge-anvil.js.map +1 -0
  182. package/dist/cards/impl/trinket/jarred-frostling.d.ts +5 -0
  183. package/dist/cards/impl/trinket/jarred-frostling.js +27 -0
  184. package/dist/cards/impl/trinket/jarred-frostling.js.map +1 -0
  185. package/dist/cards/impl/trinket/karazhan-chess-set.d.ts +5 -0
  186. package/dist/cards/impl/trinket/karazhan-chess-set.js +40 -0
  187. package/dist/cards/impl/trinket/karazhan-chess-set.js.map +1 -0
  188. package/dist/cards/impl/trinket/rivendare-portrait.d.ts +5 -0
  189. package/dist/cards/impl/trinket/rivendare-portrait.js +21 -0
  190. package/dist/cards/impl/trinket/rivendare-portrait.js.map +1 -0
  191. package/dist/cards/impl/trinket/rusty-trident.d.ts +2 -0
  192. package/dist/cards/impl/trinket/rusty-trident.js +23 -0
  193. package/dist/cards/impl/trinket/rusty-trident.js.map +1 -0
  194. package/dist/cards/impl/trinket/ship-in-a-bottle.d.ts +5 -0
  195. package/dist/cards/impl/trinket/ship-in-a-bottle.js +20 -0
  196. package/dist/cards/impl/trinket/ship-in-a-bottle.js.map +1 -0
  197. package/dist/cards/impl/trinket/summoning-sphere.d.ts +5 -0
  198. package/dist/cards/impl/trinket/summoning-sphere.js +31 -0
  199. package/dist/cards/impl/trinket/summoning-sphere.js.map +1 -0
  200. package/dist/cards/impl/trinket/tinyfin-onesie.d.ts +5 -0
  201. package/dist/cards/impl/trinket/tinyfin-onesie.js +15 -0
  202. package/dist/cards/impl/trinket/tinyfin-onesie.js.map +1 -0
  203. package/dist/cards/impl/trinket/training-certificate.d.ts +5 -0
  204. package/dist/cards/impl/trinket/training-certificate.js +21 -0
  205. package/dist/cards/impl/trinket/training-certificate.js.map +1 -0
  206. package/dist/cards/impl/trinket/valorous-medaillion.d.ts +5 -0
  207. package/dist/cards/impl/trinket/valorous-medaillion.js +12 -0
  208. package/dist/cards/impl/trinket/valorous-medaillion.js.map +1 -0
  209. package/dist/simulation/add-minion-to-board.js +18 -23
  210. package/dist/simulation/add-minion-to-board.js.map +1 -1
  211. package/dist/simulation/auras.js +0 -2
  212. package/dist/simulation/auras.js.map +1 -1
  213. package/dist/simulation/avenge.js +24 -4
  214. package/dist/simulation/avenge.js.map +1 -1
  215. package/dist/simulation/battlecries.js +9 -0
  216. package/dist/simulation/battlecries.js.map +1 -1
  217. package/dist/simulation/blood-gems.js +8 -0
  218. package/dist/simulation/blood-gems.js.map +1 -1
  219. package/dist/simulation/deathrattle-effects.js +7 -1
  220. package/dist/simulation/deathrattle-effects.js.map +1 -1
  221. package/dist/simulation/deathrattle-on-trigger.js +5 -0
  222. package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
  223. package/dist/simulation/discover.js +6 -0
  224. package/dist/simulation/discover.js.map +1 -1
  225. package/dist/simulation/magnetize.js +2 -1
  226. package/dist/simulation/magnetize.js.map +1 -1
  227. package/dist/simulation/remove-minion-from-board.js +0 -10
  228. package/dist/simulation/remove-minion-from-board.js.map +1 -1
  229. package/dist/simulation/simulator.js +1 -1
  230. package/dist/simulation/simulator.js.map +1 -1
  231. package/dist/simulation/start-of-combat/phases.d.ts +1 -0
  232. package/dist/simulation/start-of-combat/phases.js +3 -0
  233. package/dist/simulation/start-of-combat/phases.js.map +1 -0
  234. package/dist/simulation/start-of-combat/soc-action-processor.d.ts +4 -0
  235. package/dist/simulation/start-of-combat/soc-action-processor.js +286 -0
  236. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -0
  237. package/dist/simulation/start-of-combat/soc-anomalies.d.ts +4 -0
  238. package/dist/simulation/start-of-combat/soc-anomalies.js +39 -0
  239. package/dist/simulation/start-of-combat/soc-anomalies.js.map +1 -0
  240. package/dist/simulation/start-of-combat/soc-hero-power.d.ts +5 -0
  241. package/dist/simulation/start-of-combat/soc-hero-power.js +77 -0
  242. package/dist/simulation/start-of-combat/soc-hero-power.js.map +1 -0
  243. package/dist/simulation/start-of-combat/soc-illidan-hero-power.d.ts +4 -0
  244. package/dist/simulation/start-of-combat/soc-illidan-hero-power.js +55 -0
  245. package/dist/simulation/start-of-combat/soc-illidan-hero-power.js.map +1 -0
  246. package/dist/simulation/start-of-combat/soc-minion.d.ts +6 -0
  247. package/dist/simulation/start-of-combat/soc-minion.js +68 -0
  248. package/dist/simulation/start-of-combat/soc-minion.js.map +1 -0
  249. package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.d.ts +4 -0
  250. package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.js +72 -0
  251. package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.js.map +1 -0
  252. package/dist/simulation/start-of-combat/soc-quest-reward.d.ts +4 -0
  253. package/dist/simulation/start-of-combat/soc-quest-reward.js +60 -0
  254. package/dist/simulation/start-of-combat/soc-quest-reward.js.map +1 -0
  255. package/dist/simulation/start-of-combat/soc-secret.d.ts +4 -0
  256. package/dist/simulation/start-of-combat/soc-secret.js +54 -0
  257. package/dist/simulation/start-of-combat/soc-secret.js.map +1 -0
  258. package/dist/simulation/start-of-combat/soc-trinket.d.ts +4 -0
  259. package/dist/simulation/start-of-combat/soc-trinket.js +60 -0
  260. package/dist/simulation/start-of-combat/soc-trinket.js.map +1 -0
  261. package/dist/simulation/start-of-combat/start-of-combat-input.d.ts +14 -0
  262. package/dist/simulation/start-of-combat/start-of-combat-input.js +3 -0
  263. package/dist/simulation/start-of-combat/start-of-combat-input.js.map +1 -0
  264. package/dist/simulation/start-of-combat/start-of-combat.d.ts +4 -0
  265. package/dist/simulation/start-of-combat/start-of-combat.js +68 -0
  266. package/dist/simulation/start-of-combat/start-of-combat.js.map +1 -0
  267. package/dist/temp-card-ids.d.ts +2 -0
  268. package/dist/temp-card-ids.js +3 -0
  269. package/dist/temp-card-ids.js.map +1 -0
  270. package/package.json +3 -3
  271. package/dist/simulation/start-of-combat.d.ts +0 -8
  272. package/dist/simulation/start-of-combat.js +0 -1187
  273. package/dist/simulation/start-of-combat.js.map +0 -1
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IronforgeAnvil = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ const utils_1 = require("../../../utils");
6
+ exports.IronforgeAnvil = {
7
+ startOfCombat: (trinket, input) => {
8
+ if (input.playerBoard.length > 0) {
9
+ const candidates = input.playerBoard.filter((e) => {
10
+ const tribes = (0, utils_1.getEffectiveTribesForEntity)(e, input.playerEntity, input.gameState.allCards);
11
+ return tribes.length === 0;
12
+ });
13
+ if (candidates.length > 0) {
14
+ candidates.forEach((entity) => {
15
+ (0, stats_1.setEntityStats)(entity, 3 * entity.attack, 3 * entity.health, input.playerBoard, input.playerEntity, input.gameState);
16
+ input.gameState.spectator.registerPowerTarget(trinket, entity, input.playerBoard, null, null);
17
+ });
18
+ return true;
19
+ }
20
+ }
21
+ },
22
+ };
23
+ //# sourceMappingURL=ironforge-anvil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ironforge-anvil.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/ironforge-anvil.ts"],"names":[],"mappings":";;;AAEA,qDAA2D;AAC3D,0CAA6D;AAEhD,QAAA,cAAc,GAAG;IAC7B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAA,mCAA2B,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5F,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBAC7B,IAAA,sBAAc,EACb,MAAM,EACN,CAAC,GAAG,MAAM,CAAC,MAAM,EACjB,CAAC,GAAG,MAAM,CAAC,MAAM,EACjB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;oBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/F,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACZ;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { getEffectiveTribesForEntity } from '../../../utils';\r\n\r\nexport const IronforgeAnvil = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst candidates = input.playerBoard.filter((e) => {\r\n\t\t\t\tconst tribes = getEffectiveTribesForEntity(e, input.playerEntity, input.gameState.allCards);\r\n\t\t\t\treturn tribes.length === 0;\r\n\t\t\t});\r\n\t\t\tif (candidates.length > 0) {\r\n\t\t\t\tcandidates.forEach((entity) => {\r\n\t\t\t\t\tsetEntityStats(\r\n\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\t3 * entity.attack,\r\n\t\t\t\t\t\t3 * entity.health,\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\tinput.gameState.spectator.registerPowerTarget(trinket, entity, input.playerBoard, null, null);\r\n\t\t\t\t});\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const JarredFrostling: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JarredFrostling = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../services/utils");
6
+ const utils_2 = require("../../../utils");
7
+ exports.JarredFrostling = {
8
+ startOfCombat: (trinket, input) => {
9
+ const elementals = (0, utils_1.shuffleArray)(input.playerBoard.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.ELEMENTAL, input.gameState.allCards)));
10
+ if (!!(elementals === null || elementals === void 0 ? void 0 : elementals.length)) {
11
+ const targets = elementals.slice(0, 2);
12
+ targets.forEach((e) => {
13
+ var _a;
14
+ e.enchantments = (_a = e.enchantments) !== null && _a !== void 0 ? _a : [];
15
+ e.enchantments.push({
16
+ cardId: "BG30_MagicItem_952e",
17
+ originEntityId: trinket.entityId,
18
+ repeats: 1,
19
+ timing: input.gameState.sharedState.currentEntityId++,
20
+ });
21
+ input.gameState.spectator.registerPowerTarget(input.playerEntity, e, input.playerBoard, null, null);
22
+ });
23
+ return true;
24
+ }
25
+ },
26
+ };
27
+ //# sourceMappingURL=jarred-frostling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jarred-frostling.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/jarred-frostling.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAuD;AAEvD,0CAAiD;AAEpC,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC9B,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChF,CACD,CAAC;QACF,IAAI,CAAC,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;YACzB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;gBACrB,CAAC,CAAC,YAAY,GAAG,MAAA,CAAC,CAAC,YAAY,mCAAI,EAAE,CAAC;gBACtC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;oBACnB,MAAM,uBAAoE;oBAC1E,cAAc,EAAE,OAAO,CAAC,QAAQ;oBAChC,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACrD,CAAC,CAAC;gBACH,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACrG,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const JarredFrostling = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst elementals = shuffleArray(\r\n\t\t\tinput.playerBoard.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.playerEntity, Race.ELEMENTAL, input.gameState.allCards),\r\n\t\t\t),\r\n\t\t);\r\n\t\tif (!!elementals?.length) {\r\n\t\t\tconst targets = elementals.slice(0, 2);\r\n\t\t\ttargets.forEach((e) => {\r\n\t\t\t\te.enchantments = e.enchantments ?? [];\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.JarredFrostling_FrostyGlobeEnchantment_BG30_MagicItem_952e,\r\n\t\t\t\t\toriginEntityId: trinket.entityId,\r\n\t\t\t\t\trepeats: 1,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t});\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(input.playerEntity, e, input.playerBoard, null, null);\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const KarazhanChessSet: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KarazhanChessSet = void 0;
4
+ const add_minion_to_board_1 = require("../../../simulation/add-minion-to-board");
5
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
6
+ const spawns_1 = require("../../../simulation/spawns");
7
+ const utils_1 = require("../../../utils");
8
+ exports.KarazhanChessSet = {
9
+ startOfCombat: (trinket, input) => {
10
+ let hasTriggered = false;
11
+ if (input.playerBoard.length > 0) {
12
+ let minionsToCopy = 1;
13
+ for (let i = 0; i < Math.min(input.playerBoard.length, 7); i++) {
14
+ if (minionsToCopy <= 0) {
15
+ break;
16
+ }
17
+ const entityToCoy = input.playerBoard[i];
18
+ const copy = (0, utils_1.copyEntity)(entityToCoy);
19
+ (0, add_minion_to_board_1.removeAurasFromSelf)(copy, input.playerBoard, input.playerEntity, input.gameState);
20
+ const newMinions = (0, deathrattle_spawns_1.spawnEntities)(copy.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, input.playerEntity.friendly, false, false, false, copy);
21
+ const spawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, input.playerEntity, input.playerBoard.length - i - 1, input.opponentBoard, input.opponentEntity, input.gameState);
22
+ i += spawns.length;
23
+ minionsToCopy--;
24
+ hasTriggered = true;
25
+ }
26
+ }
27
+ input.currentAttacker =
28
+ input.playerBoard.length > input.opponentBoard.length
29
+ ? input.playerIsFriendly
30
+ ? 0
31
+ : 1
32
+ : input.opponentBoard.length > input.playerBoard.length
33
+ ? input.playerIsFriendly
34
+ ? 1
35
+ : 0
36
+ : Math.round(Math.random());
37
+ return hasTriggered;
38
+ },
39
+ };
40
+ //# sourceMappingURL=karazhan-chess-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"karazhan-chess-set.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/karazhan-chess-set.ts"],"names":[],"mappings":";;;AAEA,iFAA8E;AAC9E,+EAAuE;AACvE,uDAAiE;AAEjE,0CAA4C;AAE/B,QAAA,gBAAgB,GAAG;IAC/B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/D,IAAI,aAAa,IAAI,CAAC,EAAE;oBACvB,MAAM;iBACN;gBACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,IAAI,GAAgB,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;gBAClD,IAAA,yCAAmB,EAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAClF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,EACL,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;gBACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAChC,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBAKF,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;gBACnB,aAAa,EAAE,CAAC;gBAChB,YAAY,GAAG,IAAI,CAAC;aACpB;SACD;QACD,KAAK,CAAC,eAAe;YACpB,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM;gBACpD,CAAC,CAAC,KAAK,CAAC,gBAAgB;oBACvB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;oBACvD,CAAC,CAAC,KAAK,CAAC,gBAAgB;wBACvB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9B,OAAO,YAAY,CAAC;IACrB,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { removeAurasFromSelf } from '../../../simulation/add-minion-to-board';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { copyEntity } from '../../../utils';\r\n\r\nexport const KarazhanChessSet = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tlet hasTriggered = false;\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tlet minionsToCopy = 1;\r\n\t\t\tfor (let i = 0; i < Math.min(input.playerBoard.length, 7); i++) {\r\n\t\t\t\tif (minionsToCopy <= 0) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tconst entityToCoy = input.playerBoard[i];\r\n\t\t\t\tconst copy: BoardEntity = copyEntity(entityToCoy);\r\n\t\t\t\tremoveAurasFromSelf(copy, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\t\tcopy.cardId,\r\n\t\t\t\t\t1,\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.allCards,\r\n\t\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tcopy,\r\n\t\t\t\t);\r\n\t\t\t\tconst spawns = performEntitySpawns(\r\n\t\t\t\t\tnewMinions,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.playerBoard.length - i - 1,\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\t// TODO: according to http://replays.firestoneapp.com/?reviewId=576aa3bb-caa1-4e46-9d16-08a001fdd941&turn=23&action=3\r\n\t\t\t\t// it looks like the stats are simply copied from the original entity to the copy, instead\r\n\t\t\t\t// of summoning a copy and applying all the auras stuff\r\n\t\t\t\t// I've asked on Discord (2024-08-21) for clarification\r\n\t\t\t\ti += spawns.length;\r\n\t\t\t\tminionsToCopy--;\r\n\t\t\t\thasTriggered = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tinput.currentAttacker =\r\n\t\t\tinput.playerBoard.length > input.opponentBoard.length\r\n\t\t\t\t? input.playerIsFriendly\r\n\t\t\t\t\t? 0\r\n\t\t\t\t\t: 1\r\n\t\t\t\t: input.opponentBoard.length > input.playerBoard.length\r\n\t\t\t\t? input.playerIsFriendly\r\n\t\t\t\t\t? 1\r\n\t\t\t\t\t: 0\r\n\t\t\t\t: Math.round(Math.random());\r\n\t\treturn hasTriggered;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const RivendarePortrait: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RivendarePortrait = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ exports.RivendarePortrait = {
6
+ startOfCombat: (trinket, input) => {
7
+ if (trinket.scriptDataNum1 != 99) {
8
+ const rivendareTrinkets = input.playerEntity.trinkets.filter((t) => t.cardId === "BG30_MagicItem_310");
9
+ const buffBonus = rivendareTrinkets.length;
10
+ input.playerBoard
11
+ .filter((e) => e.cardId === "BG25_354" || e.cardId === "BG25_354_G")
12
+ .forEach((e) => {
13
+ (0, stats_1.modifyStats)(e, 0, buffBonus * e.health, input.playerBoard, input.playerEntity, input.gameState);
14
+ input.gameState.spectator.registerPowerTarget(trinket, e, input.playerBoard, null, null);
15
+ });
16
+ rivendareTrinkets.forEach((t) => (t.scriptDataNum1 = 99));
17
+ return true;
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=rivendare-portrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rivendare-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/rivendare-portrait.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAE3C,QAAA,iBAAiB,GAAG;IAChC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QAGzD,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE;YACjC,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC;YACF,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC;YAC3C,KAAK,CAAC,WAAW;iBACf,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,eAAoC,IAAI,CAAC,CAAC,MAAM,iBAAsC,CAC/F;iBACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAChG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;YACJ,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const RivendarePortrait = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\t// Portraits are a bit weird, as having 2 of them makes stats go x3 instead of x4,\r\n\t\t// so we process them all in one go\r\n\t\tif (trinket.scriptDataNum1 != 99) {\r\n\t\t\tconst rivendareTrinkets = input.playerEntity.trinkets.filter(\r\n\t\t\t\t(t) => t.cardId === CardIds.RivendarePortrait_BG30_MagicItem_310,\r\n\t\t\t);\r\n\t\t\tconst buffBonus = rivendareTrinkets.length;\r\n\t\t\tinput.playerBoard\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\te.cardId === CardIds.TitusRivendare_BG25_354 || e.cardId === CardIds.TitusRivendare_BG25_354_G,\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\tmodifyStats(e, 0, buffBonus * e.health, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\t\tinput.gameState.spectator.registerPowerTarget(trinket, e, input.playerBoard, null, null);\r\n\t\t\t\t});\r\n\t\t\trivendareTrinkets.forEach((t) => (t.scriptDataNum1 = 99));\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { StartOfCombatCard } from '../../card.interface';
2
+ export declare const RustyTrident: StartOfCombatCard;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RustyTrident = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const utils_1 = require("../../../utils");
6
+ exports.RustyTrident = {
7
+ startOfCombat: (trinket, input) => {
8
+ input.playerBoard
9
+ .filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.NAGA, input.gameState.allCards))
10
+ .forEach((e) => {
11
+ var _a, _b;
12
+ e.enchantments = (_a = e.enchantments) !== null && _a !== void 0 ? _a : [];
13
+ e.enchantments.push({
14
+ cardId: "BG30_MagicItem_917e",
15
+ originEntityId: (_b = trinket === null || trinket === void 0 ? void 0 : trinket.entityId) !== null && _b !== void 0 ? _b : 0,
16
+ repeats: 1,
17
+ timing: input.gameState.sharedState.currentEntityId++,
18
+ });
19
+ });
20
+ return true;
21
+ },
22
+ };
23
+ //# sourceMappingURL=rusty-trident.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rusty-trident.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/rusty-trident.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAGpC,QAAA,YAAY,GAAsB;IAC9C,aAAa,EAAE,CAAC,OAAuC,EAAE,KAAe,EAAE,EAAE;QAC3E,KAAK,CAAC,WAAW;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC1F,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;YACd,CAAC,CAAC,YAAY,GAAG,MAAA,CAAC,CAAC,YAAY,mCAAI,EAAE,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnB,MAAM,uBAAsE;gBAC5E,cAAc,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,CAAC;gBACtC,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;aACrD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const RustyTrident: StartOfCombatCard = {\r\n\tstartOfCombat: (trinket: BoardTrinket | BgsPlayerEntity, input: SoCInput) => {\r\n\t\tinput.playerBoard\r\n\t\t\t.filter((e) => hasCorrectTribe(e, input.playerEntity, Race.NAGA, input.gameState.allCards))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.enchantments = e.enchantments ?? [];\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.RustyTrident_TridentsTreasureEnchantment_BG30_MagicItem_917e,\r\n\t\t\t\t\toriginEntityId: trinket?.entityId ?? 0,\r\n\t\t\t\t\trepeats: 1,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const ShipInABottle: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShipInABottle = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
7
+ const spawns_1 = require("../../../simulation/spawns");
8
+ exports.ShipInABottle = {
9
+ startOfCombat: (trinket, input) => {
10
+ if (input.playerBoard.length < 7) {
11
+ const target = (0, utils_1.pickRandom)(input.gameState.cardsData.pirateSpawns);
12
+ (0, cards_in_hand_1.addCardsInHand)(input.playerEntity, input.playerBoard, [target], input.gameState);
13
+ const newMinions = (0, deathrattle_spawns_1.spawnEntities)(target, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, input.playerEntity.friendly, false);
14
+ const spawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, input.playerEntity, 0, input.opponentBoard, input.opponentEntity, input.gameState);
15
+ spawns.forEach((spawn) => (spawn.attackImmediately = true));
16
+ return true;
17
+ }
18
+ },
19
+ };
20
+ //# sourceMappingURL=ship-in-a-bottle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ship-in-a-bottle.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/ship-in-a-bottle.ts"],"names":[],"mappings":";;;AACA,mDAAqD;AACrD,qEAAmE;AACnE,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAClE,IAAA,8BAAc,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,MAAM,EACN,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const ShipInABottle = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst target = pickRandom(input.gameState.cardsData.pirateSpawns);\r\n\t\t\taddCardsInHand(input.playerEntity, input.playerBoard, [target], input.gameState);\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\ttarget,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\tfalse,\r\n\t\t\t);\r\n\t\t\tconst spawns = performEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tspawns.forEach((spawn) => (spawn.attackImmediately = true));\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const SummoningSphere: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SummoningSphere = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
6
+ const spawns_1 = require("../../../simulation/spawns");
7
+ const utils_2 = require("../../../utils");
8
+ exports.SummoningSphere = {
9
+ startOfCombat: (trinket, input) => {
10
+ var _a;
11
+ const teammateState = (0, utils_2.getTeammateInitialState)(input.gameState.gameState, input.playerEntity);
12
+ if (!((_a = teammateState === null || teammateState === void 0 ? void 0 : teammateState.board) === null || _a === void 0 ? void 0 : _a.length)) {
13
+ return;
14
+ }
15
+ const highestHealthMinion = (0, utils_1.shuffleArray)([...teammateState.board]).sort((a, b) => b.health - a.health)[0];
16
+ const clone = (0, utils_2.addImpliedMechanics)({
17
+ ...highestHealthMinion,
18
+ lastAffectedByEntity: null,
19
+ definitelyDead: false,
20
+ attackImmediately: false,
21
+ }, input.gameState.cardsData);
22
+ const newMinions = (0, deathrattle_spawns_1.spawnEntities)(clone.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, highestHealthMinion.friendly, true, false, false, clone);
23
+ const indexFromRight = 0;
24
+ const spawned = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, highestHealthMinion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
25
+ if (spawned.length > 0) {
26
+ input.gameState.spectator.registerPowerTarget(input.playerEntity, clone, input.playerBoard, input.playerEntity, input.opponentEntity);
27
+ return true;
28
+ }
29
+ },
30
+ };
31
+ //# sourceMappingURL=summoning-sphere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summoning-sphere.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/summoning-sphere.ts"],"names":[],"mappings":";;;AAEA,mDAAuD;AACvD,+EAAuE;AACvE,uDAAiE;AAEjE,0CAA8E;AAEjE,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE;YAClC,OAAO;SACP;QACD,MAAM,mBAAmB,GAAG,IAAA,oBAAY,EAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;YACC,GAAG,mBAAmB;YACtB,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;SACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,CACL,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAClC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,mBAAmB,EACnB,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,KAAK,EACL,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addImpliedMechanics, getTeammateInitialState } from '../../../utils';\r\n\r\nexport const SummoningSphere = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\tif (!teammateState?.board?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst highestHealthMinion = shuffleArray([...teammateState.board]).sort((a, b) => b.health - a.health)[0];\r\n\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t{\r\n\t\t\t\t...highestHealthMinion,\r\n\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\tattackImmediately: false,\r\n\t\t\t},\r\n\t\t\tinput.gameState.cardsData,\r\n\t\t);\r\n\t\tconst newMinions = spawnEntities(\r\n\t\t\tclone.cardId,\r\n\t\t\t1,\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.allCards,\r\n\t\t\tinput.gameState.cardsData,\r\n\t\t\tinput.gameState.sharedState,\r\n\t\t\tinput.gameState.spectator,\r\n\t\t\thighestHealthMinion.friendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\tclone,\r\n\t\t);\r\n\t\tconst indexFromRight = 0;\r\n\t\tconst spawned = performEntitySpawns(\r\n\t\t\tnewMinions,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\thighestHealthMinion,\r\n\t\t\tindexFromRight,\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\tif (spawned.length > 0) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tclone,\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\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const TinyfinOnesie: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TinyfinOnesie = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ exports.TinyfinOnesie = {
6
+ startOfCombat: (trinket, input) => {
7
+ var _a;
8
+ const highestHealthMinionInHand = (_a = input.playerEntity.hand) === null || _a === void 0 ? void 0 : _a.sort((a, b) => b.health - a.health)[0];
9
+ if (highestHealthMinionInHand && input.playerBoard.length > 0) {
10
+ (0, stats_1.modifyStats)(input.playerBoard[0], highestHealthMinionInHand.attack, highestHealthMinionInHand.health, input.playerBoard, input.playerEntity, input.gameState);
11
+ return true;
12
+ }
13
+ },
14
+ };
15
+ //# sourceMappingURL=tinyfin-onesie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tinyfin-onesie.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/tinyfin-onesie.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAE3C,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,MAAM,yBAAyB,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClG,IAAI,yBAAyB,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,IAAA,mBAAW,EACV,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EACpB,yBAAyB,CAAC,MAAM,EAChC,yBAAyB,CAAC,MAAM,EAChC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const TinyfinOnesie = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst highestHealthMinionInHand = input.playerEntity.hand?.sort((a, b) => b.health - a.health)[0];\r\n\t\tif (highestHealthMinionInHand && input.playerBoard.length > 0) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tinput.playerBoard[0],\r\n\t\t\t\thighestHealthMinionInHand.attack,\r\n\t\t\t\thighestHealthMinionInHand.health,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const TrainingCertificate: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrainingCertificate = void 0;
4
+ const stats_1 = require("../../../simulation/stats");
5
+ exports.TrainingCertificate = {
6
+ startOfCombat: (trinket, input) => {
7
+ if (input.playerBoard.length > 0) {
8
+ const minionsByAttack = [...input.playerBoard].sort((a, b) => a.attack - b.attack);
9
+ const firstTarget = minionsByAttack[0];
10
+ (0, stats_1.setEntityStats)(firstTarget, 2 * firstTarget.maxAttack, 2 * firstTarget.maxHealth, input.playerBoard, input.playerEntity, input.gameState);
11
+ input.gameState.spectator.registerPowerTarget(trinket, firstTarget, input.playerBoard, null, null);
12
+ if (input.playerBoard.length > 1) {
13
+ const secondTarget = minionsByAttack[1];
14
+ (0, stats_1.setEntityStats)(secondTarget, 2 * secondTarget.maxAttack, 2 * secondTarget.maxHealth, input.playerBoard, input.playerEntity, input.gameState);
15
+ input.gameState.spectator.registerPowerTarget(trinket, secondTarget, input.playerBoard, null, null);
16
+ }
17
+ return true;
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=training-certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training-certificate.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/training-certificate.ts"],"names":[],"mappings":";;;AAEA,qDAA2D;AAE9C,QAAA,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACnF,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,IAAA,sBAAc,EACb,WAAW,EACX,CAAC,GAAG,WAAW,CAAC,SAAS,EACzB,CAAC,GAAG,WAAW,CAAC,SAAS,EACzB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACnG,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAA,sBAAc,EACb,YAAY,EACZ,CAAC,GAAG,YAAY,CAAC,SAAS,EAC1B,CAAC,GAAG,YAAY,CAAC,SAAS,EAC1B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACpG;YACD,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\n\r\nexport const TrainingCertificate = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length > 0) {\r\n\t\t\tconst minionsByAttack = [...input.playerBoard].sort((a, b) => a.attack - b.attack);\r\n\t\t\tconst firstTarget = minionsByAttack[0];\r\n\t\t\tsetEntityStats(\r\n\t\t\t\tfirstTarget,\r\n\t\t\t\t2 * firstTarget.maxAttack,\r\n\t\t\t\t2 * firstTarget.maxHealth,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(trinket, firstTarget, input.playerBoard, null, null);\r\n\t\t\tif (input.playerBoard.length > 1) {\r\n\t\t\t\tconst secondTarget = minionsByAttack[1];\r\n\t\t\t\tsetEntityStats(\r\n\t\t\t\t\tsecondTarget,\r\n\t\t\t\t\t2 * secondTarget.maxAttack,\r\n\t\t\t\t\t2 * secondTarget.maxHealth,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(trinket, secondTarget, input.playerBoard, null, null);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,5 @@
1
+ import { BoardTrinket } from '../../../bgs-player-entity';
2
+ import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
3
+ export declare const ValorousMedallion: {
4
+ startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
5
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValorousMedallion = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ exports.ValorousMedallion = {
6
+ startOfCombat: (trinket, input) => {
7
+ const medallionBuff = trinket.cardId === "BG30_MagicItem_970" ? 2 : 6;
8
+ (0, utils_1.addStatsToBoard)(trinket, input.playerBoard, input.playerEntity, medallionBuff, medallionBuff, input.gameState);
9
+ return true;
10
+ },
11
+ };
12
+ //# sourceMappingURL=valorous-medaillion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valorous-medaillion.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/valorous-medaillion.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAEpC,QAAA,iBAAiB,GAAG;IAChC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,yBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAA,uBAAe,EAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/G,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addStatsToBoard } from '../../../utils';\r\n\r\nexport const ValorousMedallion = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst medallionBuff = trinket.cardId === CardIds.ValorousMedallion_BG30_MagicItem_970 ? 2 : 6;\r\n\t\taddStatsToBoard(trinket, input.playerBoard, input.playerEntity, medallionBuff, medallionBuff, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -172,6 +172,12 @@ const applyAurasToSelf = (spawned, board, boardHero, gameState) => {
172
172
  case "BG24_Reward_125":
173
173
  spawned.attack += 4;
174
174
  break;
175
+ case "BG30_MagicItem_921":
176
+ if (spawned.cardId === "BG30_119" ||
177
+ spawned.cardId === "BG30_119_G") {
178
+ spawned.attack += 8;
179
+ }
180
+ break;
175
181
  }
176
182
  }
177
183
  }
@@ -220,13 +226,6 @@ const applyAurasToSelf = (spawned, board, boardHero, gameState) => {
220
226
  spawned.attack += entity.cardId === "TB_BaconUps_008" ? 4 : 2;
221
227
  }
222
228
  break;
223
- case "BG26_805":
224
- case "BG26_805_G":
225
- if ((0, utils_2.hasCorrectTribe)(spawned, boardHero, reference_data_1.Race.BEAST, gameState.allCards) &&
226
- entity.entityId !== spawned.entityId) {
227
- spawned.attack += entity.cardId === "BG26_805_G" ? 4 : 2;
228
- }
229
- break;
230
229
  case "BG_NEW1_027":
231
230
  case "TB_BaconUps_136":
232
231
  if ((0, utils_2.hasCorrectTribe)(spawned, boardHero, reference_data_1.Race.PIRATE, gameState.allCards) &&
@@ -276,6 +275,12 @@ const applyAurasToSelf = (spawned, board, boardHero, gameState) => {
276
275
  const statsBonusFrostling = multiplierFrostling * boardHero.globalInfo.FrostlingBonus;
277
276
  (0, stats_1.modifyStats)(spawned, 2 * statsBonusFrostling, statsBonusFrostling, board, boardHero, gameState);
278
277
  break;
278
+ case "BGS_081":
279
+ case "TB_BaconUps_143":
280
+ const multiplierLooter = spawned.cardId === "TB_BaconUps_143" ? 2 : 1;
281
+ const statsBonusLooter = multiplierLooter * boardHero.globalInfo.PiratesSummonedThisGame;
282
+ (0, stats_1.modifyStats)(spawned, 2 * statsBonusLooter, 2 * multiplierLooter, board, boardHero, gameState);
283
+ break;
279
284
  case "BG_TTN_401":
280
285
  case "BG_TTN_401_G":
281
286
  const multiplierAstral = spawned.cardId === "BG_TTN_401_G" ? 2 : 1;
@@ -304,6 +309,12 @@ const removeAurasFromSelf = (entity, board, boardHero, gameState) => {
304
309
  case "BG24_Reward_125":
305
310
  entity.attack = Math.max(0, entity.attack - 7);
306
311
  break;
312
+ case "BG30_MagicItem_921":
313
+ if (entity.cardId === "BG30_119" ||
314
+ entity.cardId === "BG30_119_G") {
315
+ entity.attack = Math.max(0, entity.attack - 8);
316
+ }
317
+ break;
307
318
  }
308
319
  }
309
320
  }
@@ -347,13 +358,6 @@ const removeAurasFromSelf = (entity, board, boardHero, gameState) => {
347
358
  entity.attack = Math.max(0, entity.attack - (boardEntity.cardId === "TB_BaconUps_008" ? 4 : 2));
348
359
  }
349
360
  break;
350
- case "BG26_805":
351
- case "BG26_805_G":
352
- if ((0, utils_2.hasCorrectTribe)(entity, boardHero, reference_data_1.Race.BEAST, gameState.allCards) &&
353
- entity.entityId !== boardEntity.entityId) {
354
- entity.attack = Math.max(0, entity.attack - (entity.cardId === "BG26_805_G" ? 4 : 2));
355
- }
356
- break;
357
361
  case "BG_NEW1_027":
358
362
  case "TB_BaconUps_136":
359
363
  if ((0, utils_2.hasCorrectTribe)(entity, boardHero, reference_data_1.Race.PIRATE, gameState.allCards) &&
@@ -451,15 +455,6 @@ const handleMinionAddedAuraEffect = (spawnedCardId, spawned, board, boardHero, g
451
455
  e.attack += spawned.cardId === "TB_BaconUps_008" ? 4 : 2;
452
456
  });
453
457
  break;
454
- case "BG26_805":
455
- case "BG26_805_G":
456
- board
457
- .filter((e) => (0, utils_2.hasCorrectTribe)(e, boardHero, reference_data_1.Race.BEAST, gameState.allCards))
458
- .filter((e) => e.entityId !== spawned.entityId)
459
- .forEach((e) => {
460
- e.attack += spawned.cardId === "BG26_805_G" ? 4 : 2;
461
- });
462
- break;
463
458
  case "BG21_039":
464
459
  case "BG21_039_G":
465
460
  board