@firestone-hs/simulate-bgs-battle 1.1.700 → 1.1.702

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 (93) hide show
  1. package/dist/cards/card.interface.d.ts +2 -6
  2. package/dist/cards/card.interface.js.map +1 -1
  3. package/dist/cards/impl/_card-mappings.js +9 -1
  4. package/dist/cards/impl/_card-mappings.js.map +1 -1
  5. package/dist/cards/impl/bg-spell/azerite-empowerment.js +1 -2
  6. package/dist/cards/impl/bg-spell/azerite-empowerment.js.map +1 -1
  7. package/dist/cards/impl/bg-spell/back-to-back.js +3 -1
  8. package/dist/cards/impl/bg-spell/back-to-back.js.map +1 -1
  9. package/dist/cards/impl/bg-spell/conflagration.js +4 -2
  10. package/dist/cards/impl/bg-spell/conflagration.js.map +1 -1
  11. package/dist/cards/impl/bg-spell/deepwater-clan.js +3 -2
  12. package/dist/cards/impl/bg-spell/deepwater-clan.js.map +1 -1
  13. package/dist/cards/impl/bg-spell/healthy-bounty.js +3 -1
  14. package/dist/cards/impl/bg-spell/healthy-bounty.js.map +1 -1
  15. package/dist/cards/impl/bg-spell/hostile-bounty.js +3 -1
  16. package/dist/cards/impl/bg-spell/hostile-bounty.js.map +1 -1
  17. package/dist/cards/impl/bg-spell/menagerie-tableware.js +2 -1
  18. package/dist/cards/impl/bg-spell/menagerie-tableware.js.map +1 -1
  19. package/dist/cards/impl/bg-spell/might-of-stormwind.js +3 -1
  20. package/dist/cards/impl/bg-spell/might-of-stormwind.js.map +1 -1
  21. package/dist/cards/impl/bg-spell/murkys-fish.js +2 -1
  22. package/dist/cards/impl/bg-spell/murkys-fish.js.map +1 -1
  23. package/dist/cards/impl/bg-spell/natural-blessing.js +2 -2
  24. package/dist/cards/impl/bg-spell/natural-blessing.js.map +1 -1
  25. package/dist/cards/impl/bg-spell/queens-command.js +3 -2
  26. package/dist/cards/impl/bg-spell/queens-command.js.map +1 -1
  27. package/dist/cards/impl/bg-spell/selfish-bounty.js +3 -1
  28. package/dist/cards/impl/bg-spell/selfish-bounty.js.map +1 -1
  29. package/dist/cards/impl/bg-spell/shifting-tide.js +3 -2
  30. package/dist/cards/impl/bg-spell/shifting-tide.js.map +1 -1
  31. package/dist/cards/impl/bg-spell/shiny-ring.js +1 -2
  32. package/dist/cards/impl/bg-spell/shiny-ring.js.map +1 -1
  33. package/dist/cards/impl/bg-spell/wave-of-gold.js +3 -2
  34. package/dist/cards/impl/bg-spell/wave-of-gold.js.map +1 -1
  35. package/dist/cards/impl/minion/auto-assembler-enchantment.js +6 -1
  36. package/dist/cards/impl/minion/auto-assembler-enchantment.js.map +1 -1
  37. package/dist/cards/impl/minion/banana-slamma.js +1 -1
  38. package/dist/cards/impl/minion/banana-slamma.js.map +1 -1
  39. package/dist/cards/impl/minion/battlecruiser.js +9 -11
  40. package/dist/cards/impl/minion/battlecruiser.js.map +1 -1
  41. package/dist/cards/impl/minion/determined-defender.js +2 -2
  42. package/dist/cards/impl/minion/determined-defender.js.map +1 -1
  43. package/dist/cards/impl/minion/diremuck-forager.js +1 -1
  44. package/dist/cards/impl/minion/diremuck-forager.js.map +1 -1
  45. package/dist/cards/impl/minion/pufferquil.d.ts +2 -2
  46. package/dist/cards/impl/minion/pufferquil.js +3 -0
  47. package/dist/cards/impl/minion/pufferquil.js.map +1 -1
  48. package/dist/cards/impl/minion/radio-star.js +4 -0
  49. package/dist/cards/impl/minion/radio-star.js.map +1 -1
  50. package/dist/cards/impl/minion/ring-bearer.d.ts +2 -2
  51. package/dist/cards/impl/minion/ring-bearer.js +4 -4
  52. package/dist/cards/impl/minion/ring-bearer.js.map +1 -1
  53. package/dist/cards/impl/minion/scallywag.js.map +1 -1
  54. package/dist/cards/impl/minion/scarlet-survivor.d.ts +2 -2
  55. package/dist/cards/impl/minion/scarlet-survivor.js +12 -2
  56. package/dist/cards/impl/minion/scarlet-survivor.js.map +1 -1
  57. package/dist/cards/impl/minion/skulking-bristlemane.js +1 -1
  58. package/dist/cards/impl/minion/skulking-bristlemane.js.map +1 -1
  59. package/dist/cards/impl/minion/timecapn-hooktail.d.ts +2 -0
  60. package/dist/cards/impl/minion/timecapn-hooktail.js +14 -0
  61. package/dist/cards/impl/minion/timecapn-hooktail.js.map +1 -0
  62. package/dist/cards/impl/minion/timewarped-magnanimoose.js +1 -1
  63. package/dist/cards/impl/minion/timewarped-magnanimoose.js.map +1 -1
  64. package/dist/cards/impl/minion/timewarped-radio-star.js +2 -1
  65. package/dist/cards/impl/minion/timewarped-radio-star.js.map +1 -1
  66. package/dist/cards/impl/trinket/automaton-portrait.d.ts +4 -0
  67. package/dist/cards/impl/trinket/automaton-portrait.js +12 -6
  68. package/dist/cards/impl/trinket/automaton-portrait.js.map +1 -1
  69. package/dist/cards/impl/trinket/fang-anklet.js +2 -17
  70. package/dist/cards/impl/trinket/fang-anklet.js.map +1 -1
  71. package/dist/cards/impl/trinket/jar-o-gems.js +1 -1
  72. package/dist/cards/impl/trinket/jar-o-gems.js.map +1 -1
  73. package/dist/cards/impl/trinket/mama-bear-sticker.d.ts +2 -0
  74. package/dist/cards/impl/trinket/mama-bear-sticker.js +18 -0
  75. package/dist/cards/impl/trinket/mama-bear-sticker.js.map +1 -0
  76. package/dist/cards/impl/trinket/powder-keg-enchantment.js +5 -5
  77. package/dist/cards/impl/trinket/powder-keg-enchantment.js.map +1 -1
  78. package/dist/cards/impl/trinket/powder-keg.js +3 -1
  79. package/dist/cards/impl/trinket/powder-keg.js.map +1 -1
  80. package/dist/cards/impl/trinket/slamma-sticker.js +1 -1
  81. package/dist/cards/impl/trinket/slamma-sticker.js.map +1 -1
  82. package/dist/mechanics/cast-tavern-spell.js +8 -8
  83. package/dist/mechanics/cast-tavern-spell.js.map +1 -1
  84. package/dist/simulation/add-minion-to-board.js +15 -1
  85. package/dist/simulation/add-minion-to-board.js.map +1 -1
  86. package/dist/simulation/start-of-combat/soc-action-processor.js +0 -3
  87. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  88. package/dist/simulation/summon-when-space.js +7 -1
  89. package/dist/simulation/summon-when-space.js.map +1 -1
  90. package/dist/utils.d.ts +4 -0
  91. package/dist/utils.js +15 -1
  92. package/dist/utils.js.map +1 -1
  93. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"azerite-empowerment.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/azerite-empowerment.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAEvD,0CAAiD;AAGpC,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACxE,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACxE,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const AzeriteEmpowerment: TavernSpellCard = {\r\n\tcardIds: [CardIds.AzeriteEmpowerment_BG28_169],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst attack = baseAttack + input.hero.globalInfo.TavernSpellAttackBuff;\r\n\t\tconst health = baseHealth + input.hero.globalInfo.TavernSpellHealthBuff;\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"azerite-empowerment.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/azerite-empowerment.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAEvD,0CAA0E;AAG7D,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const AzeriteEmpowerment: TavernSpellCard = {\r\n\tcardIds: [CardIds.AzeriteEmpowerment_BG28_169],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BackToBack = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
+ const utils_1 = require("../../../utils");
5
6
  exports.BackToBack = {
6
7
  cardIds: ["BG35_952"],
7
8
  castTavernSpell: (_spellCardId, input) => {
@@ -9,10 +10,11 @@ exports.BackToBack = {
9
10
  const target = (_a = input.target) !== null && _a !== void 0 ? _a : input.board.find((e) => e.health > 0 && !e.definitelyDead);
10
11
  if (!target)
11
12
  return;
13
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 4, 4, input.gameState.allCards, input.spellCardId);
12
14
  const previousCasts = (_b = input.hero.globalInfo.BackToBackCastThisGame) !== null && _b !== void 0 ? _b : 0;
13
15
  const repetitions = 1 + previousCasts;
14
16
  for (let i = 0; i < repetitions; i++) {
15
- (0, stats_1.modifyStats)(target, input.source, 4, 4, input.board, input.hero, input.gameState);
17
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
16
18
  }
17
19
  input.hero.globalInfo.BackToBackCastThisGame = previousCasts + 1;
18
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"back-to-back.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/back-to-back.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAG3C,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,mCAAI,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACrC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,aAAa,GAAG,CAAC,CAAC;IAClE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const BackToBack: TavernSpellCard = {\r\n\tcardIds: [CardIds.BackToBack_BG35_952],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) return;\r\n\t\tconst previousCasts = input.hero.globalInfo.BackToBackCastThisGame ?? 0;\r\n\t\tconst repetitions = 1 + previousCasts;\r\n\t\tfor (let i = 0; i < repetitions; i++) {\r\n\t\t\tmodifyStats(target, input.source, 4, 4, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tinput.hero.globalInfo.BackToBackCastThisGame = previousCasts + 1;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"back-to-back.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/back-to-back.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,mCAAI,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACrC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,aAAa,GAAG,CAAC,CAAC;IAClE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const BackToBack: TavernSpellCard = {\r\n\tcardIds: [CardIds.BackToBack_BG35_952],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) return;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t4,\r\n\t\t\t4,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst previousCasts = input.hero.globalInfo.BackToBackCastThisGame ?? 0;\r\n\t\tconst repetitions = 1 + previousCasts;\r\n\t\tfor (let i = 0; i < repetitions; i++) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tinput.hero.globalInfo.BackToBackCastThisGame = previousCasts + 1;\r\n\t},\r\n};\r\n"]}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Conflagration = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
+ const utils_1 = require("../../../utils");
5
6
  exports.Conflagration = {
6
7
  cardIds: ["BG35_910", "BG35_910_G"],
7
8
  castTavernSpell: (spellCardId, input) => {
@@ -12,8 +13,9 @@ exports.Conflagration = {
12
13
  return;
13
14
  }
14
15
  const elementalsPlayed = (_b = input.hero.globalInfo.ElementalsPlayedThisTurn) !== null && _b !== void 0 ? _b : 0;
15
- const attack = (4 + elementalsPlayed) * mult;
16
- const health = (4 + elementalsPlayed) * mult;
16
+ const baseAttack = (4 + elementalsPlayed) * mult;
17
+ const baseHealth = (4 + elementalsPlayed) * mult;
18
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, baseAttack, baseHealth, input.gameState.allCards, input.spellCardId);
17
19
  (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
18
20
  },
19
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"conflagration.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/conflagration.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAG3C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,MAAM,gBAAgB,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC7C,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const Conflagration: TavernSpellCard = {\r\n\tcardIds: [CardIds.Conflagration_BG35_910, CardIds.Conflagration_BG35_910_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.Conflagration_BG35_910_G ? 2 : 1;\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst elementalsPlayed = input.hero.globalInfo.ElementalsPlayedThisTurn ?? 0;\r\n\t\tconst attack = (4 + elementalsPlayed) * mult;\r\n\t\tconst health = (4 + elementalsPlayed) * mult;\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"conflagration.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/conflagration.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,MAAM,gBAAgB,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const Conflagration: TavernSpellCard = {\r\n\tcardIds: [CardIds.Conflagration_BG35_910, CardIds.Conflagration_BG35_910_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.Conflagration_BG35_910_G ? 2 : 1;\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst elementalsPlayed = input.hero.globalInfo.ElementalsPlayedThisTurn ?? 0;\r\n\t\tconst baseAttack = (4 + elementalsPlayed) * mult;\r\n\t\tconst baseHealth = (4 + elementalsPlayed) * mult;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -9,15 +9,16 @@ exports.DeepwaterClan = {
9
9
  castTavernSpell: (spellCardId, input) => {
10
10
  var _a;
11
11
  const mult = spellCardId === "BG35_149_G" ? 2 : 1;
12
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 2 * mult, 2 * mult, input.gameState.allCards, input.spellCardId);
12
13
  const target = (_a = input.target) !== null && _a !== void 0 ? _a : input.board.find((e) => e.health > 0 && !e.definitelyDead);
13
14
  if (target) {
14
- (0, stats_1.modifyStats)(target, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);
15
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
15
16
  }
16
17
  for (const entity of input.board) {
17
18
  if (entity.health <= 0 || entity.definitelyDead)
18
19
  continue;
19
20
  if ((0, utils_1.hasCorrectTribe)(entity, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards)) {
20
- (0, stats_1.modifyStats)(entity, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);
21
+ (0, stats_1.modifyStats)(entity, input.source, attack, health, input.board, input.hero, input.gameState);
21
22
  }
22
23
  }
23
24
  },
@@ -1 +1 @@
1
- {"version":3,"file":"deepwater-clan.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/deepwater-clan.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChG;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;gBAAE,SAAS;YAC1D,IAAI,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC1G,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAChG;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const DeepwaterClan: TavernSpellCard = {\r\n\tcardIds: [CardIds.DeepwaterClan_BG35_149, CardIds.DeepwaterClan_BG35_149_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.DeepwaterClan_BG35_149_G ? 2 : 1;\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tmodifyStats(target, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tfor (const entity of input.board) {\r\n\t\t\tif (entity.health <= 0 || entity.definitelyDead) continue;\r\n\t\t\tif (hasCorrectTribe(entity, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(entity, input.source, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"deepwater-clan.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/deepwater-clan.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;gBAAE,SAAS;YAC1D,IAAI,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC1G,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC5F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const DeepwaterClan: TavernSpellCard = {\r\n\tcardIds: [CardIds.DeepwaterClan_BG35_149, CardIds.DeepwaterClan_BG35_149_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.DeepwaterClan_BG35_149_G ? 2 : 1;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t2 * mult,\r\n\t\t\t2 * mult,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tfor (const entity of input.board) {\r\n\t\t\tif (entity.health <= 0 || entity.definitelyDead) continue;\r\n\t\t\tif (hasCorrectTribe(entity, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(entity, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HealthyBounty = void 0;
4
4
  const utils_1 = require("../../../services/utils");
5
5
  const stats_1 = require("../../../simulation/stats");
6
+ const utils_2 = require("../../../utils");
6
7
  exports.HealthyBounty = {
7
8
  cardIds: ["BG33_811"],
8
9
  castTavernSpell: (_spellCardId, input) => {
10
+ const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 0, 4, input.gameState.allCards, input.spellCardId);
9
11
  const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 3);
10
12
  for (const target of targets) {
11
- (0, stats_1.modifyStats)(target, input.source, 0, 4, input.board, input.hero, input.gameState);
13
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
12
14
  }
13
15
  },
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"healthy-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/healthy-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AAG3C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HealthyBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HealthyBounty_BG33_811],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, 0, 4, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"healthy-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/healthy-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HealthyBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HealthyBounty_BG33_811],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t0,\r\n\t\t\t4,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HostileBounty = void 0;
4
4
  const utils_1 = require("../../../services/utils");
5
5
  const stats_1 = require("../../../simulation/stats");
6
+ const utils_2 = require("../../../utils");
6
7
  exports.HostileBounty = {
7
8
  cardIds: ["BG33_812"],
8
9
  castTavernSpell: (_spellCardId, input) => {
10
+ const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 4, 0, input.gameState.allCards, input.spellCardId);
9
11
  const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 3);
10
12
  for (const target of targets) {
11
- (0, stats_1.modifyStats)(target, input.source, 4, 0, input.board, input.hero, input.gameState);
13
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
12
14
  }
13
15
  },
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hostile-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/hostile-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AAG3C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HostileBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HostileBounty_BG33_812],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, 4, 0, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"hostile-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/hostile-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HostileBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HostileBounty_BG33_812],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t4,\r\n\t\t\t0,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -5,9 +5,10 @@ const utils_1 = require("../../../utils");
5
5
  exports.MenagerieTableware = {
6
6
  cardIds: ["BG34_272"],
7
7
  castTavernSpell: (spellCardId, input) => {
8
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3, 3, input.gameState.allCards, input.spellCardId);
8
9
  const numberOfDifferentTypes = (0, utils_1.getMinionsOfDifferentTypes)(input.board, input.hero, input.gameState).length;
9
10
  for (let i = 0; i < numberOfDifferentTypes + 1; i++) {
10
- (0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, 3, 3, input.gameState);
11
+ (0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
11
12
  }
12
13
  },
13
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"menagerie-tableware.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/menagerie-tableware.ts"],"names":[],"mappings":";;;AACA,0CAA6E;AAGhE,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,sBAAsB,GAAG,IAAA,kCAA0B,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9E;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, getMinionsOfDifferentTypes } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MenagerieTableware: TavernSpellCard = {\r\n\tcardIds: [CardIds.MenagerieTableware_BG34_272],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst numberOfDifferentTypes = getMinionsOfDifferentTypes(input.board, input.hero, input.gameState).length;\r\n\t\tfor (let i = 0; i < numberOfDifferentTypes + 1; i++) {\r\n\t\t\taddStatsToBoard(input.source, input.board, input.hero, 3, 3, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"menagerie-tableware.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/menagerie-tableware.ts"],"names":[],"mappings":";;;AACA,0CAAsG;AAGzF,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAA,kCAA0B,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, getMinionsOfDifferentTypes, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MenagerieTableware: TavernSpellCard = {\r\n\tcardIds: [CardIds.MenagerieTableware_BG34_272],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3,\r\n\t\t\t3,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst numberOfDifferentTypes = getMinionsOfDifferentTypes(input.board, input.hero, input.gameState).length;\r\n\t\tfor (let i = 0; i < numberOfDifferentTypes + 1; i++) {\r\n\t\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MightOfStormwind = void 0;
4
4
  const utils_1 = require("../../../services/utils");
5
5
  const stats_1 = require("../../../simulation/stats");
6
+ const utils_2 = require("../../../utils");
6
7
  exports.MightOfStormwind = {
7
8
  cardIds: ["BG35_951"],
8
9
  castTavernSpell: (_spellCardId, input) => {
10
+ const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 1, 2, input.gameState.allCards, input.spellCardId);
9
11
  const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 4);
10
12
  for (const target of targets) {
11
- (0, stats_1.modifyStats)(target, input.source, 1, 2, input.board, input.hero, input.gameState);
13
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
12
14
  }
13
15
  },
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"might-of-stormwind.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/might-of-stormwind.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AAG3C,QAAA,gBAAgB,GAAoB;IAChD,OAAO,EAAE,YAAmC;IAC5C,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MightOfStormwind: TavernSpellCard = {\r\n\tcardIds: [CardIds.MightOfStormwind_BG35_951],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 4);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, 1, 2, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"might-of-stormwind.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/might-of-stormwind.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,gBAAgB,GAAoB;IAChD,OAAO,EAAE,YAAmC;IAC5C,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MightOfStormwind: TavernSpellCard = {\r\n\tcardIds: [CardIds.MightOfStormwind_BG35_951],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t1,\r\n\t\t\t2,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 4);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -11,9 +11,10 @@ exports.MurkysFish = {
11
11
  const murlocs = input.board.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
12
12
  const target = (0, utils_1.pickRandom)(murlocs);
13
13
  if (!!target) {
14
+ const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
14
15
  const loops = 1 + murlocs.length;
15
16
  for (let i = 0; i < loops; i++) {
16
- (0, stats_1.modifyStats)(target, input.source, 1, 1, input.board, input.hero, input.gameState);
17
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
17
18
  }
18
19
  }
19
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"murkys-fish.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/murkys-fish.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAClF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MurkysFish: TavernSpellCard = {\r\n\tcardIds: [CardIds.MurkysFish_BG33_898],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst murlocs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = pickRandom(murlocs);\r\n\t\tif (!!target) {\r\n\t\t\tconst loops = 1 + murlocs.length;\r\n\t\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t\tmodifyStats(target, input.source, 1, 1, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"murkys-fish.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/murkys-fish.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;YACF,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC5F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MurkysFish: TavernSpellCard = {\r\n\tcardIds: [CardIds.MurkysFish_BG33_898],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst murlocs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = pickRandom(murlocs);\r\n\t\tif (!!target) {\r\n\t\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t1,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.spellCardId,\r\n\t\t\t);\r\n\t\t\tconst loops = 1 + murlocs.length;\r\n\t\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -4,14 +4,14 @@ exports.NaturalBlessing = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const utils_1 = require("../../../services/utils");
6
6
  const stats_1 = require("../../../simulation/stats");
7
+ const utils_2 = require("../../../utils");
7
8
  exports.NaturalBlessing = {
8
9
  cardIds: ["BG28_845"],
9
10
  castTavernSpell: (spellCardId, input) => {
10
11
  var _a, _b, _c, _d;
11
12
  const baseAttack = input.gameState.allCards.getCard(spellCardId).tags[reference_data_1.GameTag[reference_data_1.GameTag.TAG_SCRIPT_DATA_NUM_1]];
12
13
  const baseHealth = input.gameState.allCards.getCard(spellCardId).tags[reference_data_1.GameTag[reference_data_1.GameTag.TAG_SCRIPT_DATA_NUM_2]];
13
- const attack = baseAttack + input.hero.globalInfo.TavernSpellAttackBuff;
14
- const health = baseHealth + input.hero.globalInfo.TavernSpellHealthBuff;
14
+ const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, baseAttack, baseHealth, input.gameState.allCards, input.spellCardId);
15
15
  const allMinions = [...input.board, ...input.otherBoard];
16
16
  const target = (0, utils_1.pickRandom)(allMinions);
17
17
  const minionsSharingType = allMinions.filter((e) => doMinionsShareType(e, target, input.gameState.allCards));
@@ -1 +1 @@
1
- {"version":3,"file":"natural-blessing.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/natural-blessing.ts"],"names":[],"mappings":";;;AAAA,iEAAwE;AAGxE,mDAAqD;AACrD,qDAAwD;AAG3C,QAAA,eAAe,GAAoB;IAC/C,OAAO,EAAE,YAAkC;IAC3C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QACxE,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAExE,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7G,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;YACxC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QAED,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAC/D,CAAC;QACF,IAAI,WAAW,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE;gBAC7C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACnE,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;oBAClD,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;iBAClD;aACD;SACD;IACF,CAAC;CACD,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAE,MAAmB,EAAE,QAAyB,EAAE,EAAE;;IAClG,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import { AllCardsService, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const NaturalBlessing: TavernSpellCard = {\r\n\tcardIds: [CardIds.NaturalBlessing_BG28_845],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst attack = baseAttack + input.hero.globalInfo.TavernSpellAttackBuff;\r\n\t\tconst health = baseHealth + input.hero.globalInfo.TavernSpellHealthBuff;\r\n\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst target = pickRandom(allMinions);\r\n\t\tconst minionsSharingType = allMinions.filter((e) => doMinionsShareType(e, target, input.gameState.allCards));\r\n\t\tfor (const minion of minionsSharingType) {\r\n\t\t\tmodifyStats(minion, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\r\n\t\tconst hasPortrait = input.hero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.BlessingPortrait_BG32_MagicItem_894,\r\n\t\t);\r\n\t\tif (hasPortrait) {\r\n\t\t\tfor (const handCard of input.hero.hand ?? []) {\r\n\t\t\t\tif (doMinionsShareType(handCard, target, input.gameState.allCards)) {\r\n\t\t\t\t\thandCard.attack = (handCard.attack ?? 0) + attack;\r\n\t\t\t\t\thandCard.health = (handCard.health ?? 0) + health;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst doMinionsShareType = (minion: BoardEntity, target: BoardEntity, allCards: AllCardsService) => {\r\n\tconst minionTypes = allCards.getCard(minion.cardId).races ?? [];\r\n\tconst targetTypes = allCards.getCard(target.cardId).races ?? [];\r\n\treturn minionTypes.some((type) => targetTypes.includes(type));\r\n};\r\n"]}
1
+ {"version":3,"file":"natural-blessing.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/natural-blessing.ts"],"names":[],"mappings":";;;AAAA,iEAAwE;AAGxE,mDAAqD;AACrD,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,eAAe,GAAoB;IAC/C,OAAO,EAAE,YAAkC;IAC3C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7G,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;YACxC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QAED,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAC/D,CAAC;QACF,IAAI,WAAW,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE;gBAC7C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACnE,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;oBAClD,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;iBAClD;aACD;SACD;IACF,CAAC;CACD,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAE,MAAmB,EAAE,QAAyB,EAAE,EAAE;;IAClG,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import { AllCardsService, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const NaturalBlessing: TavernSpellCard = {\r\n\tcardIds: [CardIds.NaturalBlessing_BG28_845],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst target = pickRandom(allMinions);\r\n\t\tconst minionsSharingType = allMinions.filter((e) => doMinionsShareType(e, target, input.gameState.allCards));\r\n\t\tfor (const minion of minionsSharingType) {\r\n\t\t\tmodifyStats(minion, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\r\n\t\tconst hasPortrait = input.hero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.BlessingPortrait_BG32_MagicItem_894,\r\n\t\t);\r\n\t\tif (hasPortrait) {\r\n\t\t\tfor (const handCard of input.hero.hand ?? []) {\r\n\t\t\t\tif (doMinionsShareType(handCard, target, input.gameState.allCards)) {\r\n\t\t\t\t\thandCard.attack = (handCard.attack ?? 0) + attack;\r\n\t\t\t\t\thandCard.health = (handCard.health ?? 0) + health;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst doMinionsShareType = (minion: BoardEntity, target: BoardEntity, allCards: AllCardsService) => {\r\n\tconst minionTypes = allCards.getCard(minion.cardId).races ?? [];\r\n\tconst targetTypes = allCards.getCard(target.cardId).races ?? [];\r\n\treturn minionTypes.some((type) => targetTypes.includes(type));\r\n};\r\n"]}
@@ -8,13 +8,14 @@ exports.QueensCommand = {
8
8
  cardIds: ["BG35_922", "BG35_922_G"],
9
9
  castTavernSpell: (spellCardId, input) => {
10
10
  const mult = spellCardId === "BG35_922_G" ? 2 : 1;
11
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3 * mult, 3 * mult, input.gameState.allCards, input.spellCardId);
11
12
  for (const e of input.board) {
12
13
  if (e.health <= 0 || e.definitelyDead) {
13
14
  continue;
14
15
  }
15
- (0, stats_1.modifyStats)(e, input.source, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);
16
+ (0, stats_1.modifyStats)(e, input.source, attack, health, input.board, input.hero, input.gameState);
16
17
  if ((0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {
17
- (0, stats_1.modifyStats)(e, input.source, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);
18
+ (0, stats_1.modifyStats)(e, input.source, attack, health, input.board, input.hero, input.gameState);
18
19
  }
19
20
  }
20
21
  },
@@ -1 +1 @@
1
- {"version":3,"file":"queens-command.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/queens-command.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;gBACtC,SAAS;aACT;YACD,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3F,IAAI,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACnG,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC3F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const QueensCommand: TavernSpellCard = {\r\n\tcardIds: [CardIds.QueensCommand_BG35_922, CardIds.QueensCommand_BG35_922_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.QueensCommand_BG35_922_G ? 2 : 1;\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.health <= 0 || e.definitelyDead) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tmodifyStats(e, input.source, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, input.source, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"queens-command.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/queens-command.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;gBACtC,SAAS;aACT;YACD,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACvF,IAAI,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACnG,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const QueensCommand: TavernSpellCard = {\r\n\tcardIds: [CardIds.QueensCommand_BG35_922, CardIds.QueensCommand_BG35_922_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.QueensCommand_BG35_922_G ? 2 : 1;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3 * mult,\r\n\t\t\t3 * mult,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.health <= 0 || e.definitelyDead) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tmodifyStats(e, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -2,12 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SelfishBounty = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
+ const utils_1 = require("../../../utils");
5
6
  exports.SelfishBounty = {
6
7
  cardIds: ["BG33_813"],
7
8
  castTavernSpell: (_spellCardId, input) => {
8
9
  const target = input.board[0];
9
10
  if (target) {
10
- (0, stats_1.modifyStats)(target, input.source, 6, 6, input.board, input.hero, input.gameState);
11
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 6, 6, input.gameState.allCards, input.spellCardId);
12
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
11
13
  }
12
14
  },
13
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"selfish-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/selfish-bounty.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAG3C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE;YACX,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const SelfishBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.SelfishBounty_BG33_813],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.board[0];\r\n\t\tif (target) {\r\n\t\t\tmodifyStats(target, input.source, 6, 6, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"selfish-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/selfish-bounty.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE;YACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;YACF,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const SelfishBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.SelfishBounty_BG33_813],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.board[0];\r\n\t\tif (target) {\r\n\t\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t6,\r\n\t\t\t\t6,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.spellCardId,\r\n\t\t\t);\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -7,9 +7,10 @@ const utils_1 = require("../../../utils");
7
7
  const applyShiftingTideToTarget = (target, input) => {
8
8
  const isNaga = (0, utils_1.hasCorrectTribe)(target, input.hero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards);
9
9
  const rounds = isNaga ? 2 : 1;
10
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
10
11
  for (let r = 0; r < rounds; r++) {
11
- (0, stats_1.modifyStats)(target, input.source, 1, 1, input.board, input.hero, input.gameState);
12
- (0, stats_1.modifyStats)(target, input.source, 1, 1, input.board, input.hero, input.gameState);
12
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
13
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
13
14
  }
14
15
  };
15
16
  exports.ShiftingTide = {
@@ -1 +1 @@
1
- {"version":3,"file":"shifting-tide.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shifting-tide.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAAiD;AAIjD,MAAM,yBAAyB,GAAG,CAAC,MAA6C,EAAE,KAAqB,EAAQ,EAAE;IAChH,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;KAClF;AACF,CAAC,CAAC;AAEW,QAAA,YAAY,GAAoB;IAC5C,OAAO,EAAE,YAA+B;IACxC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACzC;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\n/** Give a minion +2/+2 twice. If it's a Naga, repeat this (two more +2/+2 applications). */\r\nconst applyShiftingTideToTarget = (target: NonNullable<CastSpellInput['target']>, input: CastSpellInput): void => {\r\n\tconst isNaga = hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards);\r\n\tconst rounds = isNaga ? 2 : 1;\r\n\tfor (let r = 0; r < rounds; r++) {\r\n\t\tmodifyStats(target, input.source, 1, 1, input.board, input.hero, input.gameState);\r\n\t\tmodifyStats(target, input.source, 1, 1, input.board, input.hero, input.gameState);\r\n\t}\r\n};\r\n\r\nexport const ShiftingTide: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShiftingTide_BG32_815],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tapplyShiftingTideToTarget(target, input);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"shifting-tide.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shifting-tide.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAI1E,MAAM,yBAAyB,GAAG,CAAC,MAA6C,EAAE,KAAqB,EAAQ,EAAE;IAChH,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;KAC5F;AACF,CAAC,CAAC;AAEW,QAAA,YAAY,GAAoB;IAC5C,OAAO,EAAE,YAA+B;IACxC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACzC;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\n/** Give a minion +2/+2 twice. If it's a Naga, repeat this (two more +2/+2 applications). */\r\nconst applyShiftingTideToTarget = (target: NonNullable<CastSpellInput['target']>, input: CastSpellInput): void => {\r\n\tconst isNaga = hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards);\r\n\tconst rounds = isNaga ? 2 : 1;\r\n\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\tinput.hero,\r\n\t\t1,\r\n\t\t1,\r\n\t\tinput.gameState.allCards,\r\n\t\tinput.spellCardId,\r\n\t);\r\n\tfor (let r = 0; r < rounds; r++) {\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t}\r\n};\r\n\r\nexport const ShiftingTide: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShiftingTide_BG32_815],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tapplyShiftingTideToTarget(target, input);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -5,8 +5,7 @@ const utils_1 = require("../../../utils");
5
5
  exports.ShinyRing = {
6
6
  cardIds: ["BG28_168"],
7
7
  castTavernSpell: (spellCardId, input) => {
8
- const attack = 1 + input.hero.globalInfo.TavernSpellAttackBuff;
9
- const health = 1 + input.hero.globalInfo.TavernSpellHealthBuff;
8
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
10
9
  (0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
11
10
  },
12
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shiny-ring.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shiny-ring.ts"],"names":[],"mappings":";;;AACA,0CAAiD;AAGpC,QAAA,SAAS,GAAoB;IACzC,OAAO,EAAE,YAA4B;IACrC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAC/D,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const ShinyRing: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShinyRing_BG28_168],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst attack = 1 + input.hero.globalInfo.TavernSpellAttackBuff;\r\n\t\tconst health = 1 + input.hero.globalInfo.TavernSpellHealthBuff;\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"shiny-ring.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shiny-ring.ts"],"names":[],"mappings":";;;AACA,0CAA0E;AAG7D,QAAA,SAAS,GAAoB;IACzC,OAAO,EAAE,YAA4B;IACrC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const ShinyRing: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShinyRing_BG28_168],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t1,\r\n\t\t\t1,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -6,10 +6,11 @@ const utils_1 = require("../../../utils");
6
6
  exports.WaveOfGold = {
7
7
  cardIds: ["BG34_990"],
8
8
  castTavernSpell: (spellCardId, input) => {
9
- (0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, 3, 2, input.gameState);
9
+ const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3, 2, input.gameState.allCards, input.spellCardId);
10
+ (0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
10
11
  const goldenMinions = input.board.filter((e) => (0, utils_1.isGolden)(e.cardId, input.gameState.allCards));
11
12
  for (const target of goldenMinions) {
12
- (0, stats_1.modifyStats)(target, input.source, 3, 2, input.board, input.hero, input.gameState);
13
+ (0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
13
14
  }
14
15
  },
15
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wave-of-gold.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/wave-of-gold.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAA2D;AAG9C,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9F,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YACnC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAClF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { addStatsToBoard, isGolden } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const WaveOfGold: TavernSpellCard = {\r\n\tcardIds: [CardIds.WaveOfGold_BG34_990],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, 3, 2, input.gameState);\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards));\r\n\t\tfor (const target of goldenMinions) {\r\n\t\t\tmodifyStats(target, input.source, 3, 2, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wave-of-gold.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/wave-of-gold.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAoF;AAGvE,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9F,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YACnC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { addStatsToBoard, isGolden, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const WaveOfGold: TavernSpellCard = {\r\n\tcardIds: [CardIds.WaveOfGold_BG34_990],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3,\r\n\t\t\t2,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards));\r\n\t\tfor (const target of goldenMinions) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -8,10 +8,15 @@ exports.AutoAssemblerEnchantment = {
8
8
  "BG32_172_Ge",
9
9
  ],
10
10
  deathrattleSpawnEnchantmentEffect: (enchantment, minion, input) => {
11
+ var _a, _b, _c, _d;
11
12
  const cardIdToSpawn = enchantment.cardId === "BG32_172_Ge"
12
13
  ? "BG_TTN_401_G"
13
14
  : "BG_TTN_401";
14
- return (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cardIdToSpawn, 1, input);
15
+ const attackPerMinion = enchantment.cardId === "BG32_172_Ge"
16
+ ? (_b = (_a = input.gameState.allCards.getCard("BG32_172_G")) === null || _a === void 0 ? void 0 : _a.attack) !== null && _b !== void 0 ? _b : 0
17
+ : (_d = (_c = input.gameState.allCards.getCard("BG32_172")) === null || _c === void 0 ? void 0 : _c.attack) !== null && _d !== void 0 ? _d : 0;
18
+ const loops = Math.floor((enchantment.tagScriptDataNum1 || attackPerMinion) / attackPerMinion);
19
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cardIdToSpawn, loops, input);
15
20
  },
16
21
  };
17
22
  //# sourceMappingURL=auto-assembler-enchantment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-assembler-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/auto-assembler-enchantment.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,wBAAwB,GAAoC;IACxE,OAAO,EAAE;;;KAGR;IACD,iCAAiC,EAAE,CAClC,WAA+B,EAC/B,MAAsC,EACtC,KAAgC,EACP,EAAE;QAC3B,MAAM,aAAa,GAClB,WAAW,CAAC,MAAM,kBAA+D;YAChF,CAAC;YACD,CAAC,aAAmC,CAAC;QACvC,OAAO,IAAA,4CAAuB,EAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnEnchantmentCard } from '../../card.interface';\r\n\r\nexport const AutoAssemblerEnchantment: DeathrattleSpawnEnchantmentCard = {\r\n\tcardIds: [\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172e,\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge,\r\n\t],\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tenchantment: { cardId: string },\r\n\t\tminion: BoardEntity | null | undefined,\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t): readonly BoardEntity[] => {\r\n\t\tconst cardIdToSpawn =\r\n\t\t\tenchantment.cardId === CardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge\r\n\t\t\t\t? CardIds.AstralAutomaton_BG_TTN_401_G\r\n\t\t\t\t: CardIds.AstralAutomaton_BG_TTN_401;\r\n\t\treturn simplifiedSpawnEntities(cardIdToSpawn, 1, input);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"auto-assembler-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/auto-assembler-enchantment.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,wBAAwB,GAAoC;IACxE,OAAO,EAAE;;;KAGR;IACD,iCAAiC,EAAE,CAClC,WAA6B,EAC7B,MAAsC,EACtC,KAAgC,EACP,EAAE;;QAC3B,MAAM,aAAa,GAClB,WAAW,CAAC,MAAM,kBAA+D;YAChF,CAAC;YACD,CAAC,aAAmC,CAAC;QA2EvC,MAAM,eAAe,GACpB,WAAW,CAAC,MAAM,kBAA+D;YAChF,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAkC,0CAAE,MAAM,mCAAI,CAAC;YACjF,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,YAAgC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,iBAAiB,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;QAC/F,OAAO,IAAA,4CAAuB,EAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;CACD,CAAC","sourcesContent":["import { BoardEnchantment, BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnEnchantmentCard } from '../../card.interface';\r\n\r\nexport const AutoAssemblerEnchantment: DeathrattleSpawnEnchantmentCard = {\r\n\tcardIds: [\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172e,\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge,\r\n\t],\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tenchantment: BoardEnchantment,\r\n\t\tminion: BoardEntity | null | undefined,\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t): readonly BoardEntity[] => {\r\n\t\tconst cardIdToSpawn =\r\n\t\t\tenchantment.cardId === CardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge\r\n\t\t\t\t? CardIds.AstralAutomaton_BG_TTN_401_G\r\n\t\t\t\t: CardIds.AstralAutomaton_BG_TTN_401;\r\n\t\t// Not sure at all.\r\n\t\t// This is the enchantment that spawned 2 Automatons:\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=6863 CardID=BG32_172e\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CONTROLLER value=13\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ATTACHED value=6862\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ENTITY_ID value=6863\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CREATOR value=6862\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1037 value=5\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CREATOR_DBID value=108432\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=1068 value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=1068 value=0\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=ZONE value=PLAY\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=CREATOR value=3621\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=CREATOR_DBID value=120025\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=TAG_SCRIPT_DATA_NUM_1 value=4\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=TAG_SCRIPT_DATA_NUM_2 value=4\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=3528 value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=COPIED_FROM_ENTITY_ID value=6655\r\n\t\t// This is the enchantment that spawned 4 Automatons:\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=9342 CardID=BG32_172e\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CONTROLLER value=12\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ATTACHED value=9341\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ENTITY_ID value=9342\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CREATOR value=9341\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1037 value=4\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CREATOR_DBID value=61930\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=1068 value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=1068 value=0\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=ZONE value=PLAY\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=CREATOR value=3789\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=CREATOR_DBID value=120025\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=TAG_SCRIPT_DATA_NUM_1 value=8\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=TAG_SCRIPT_DATA_NUM_2 value=8\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=3528 value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=COPIED_FROM_ENTITY_ID value=9048\r\n\t\t// This spawns 2 golden:\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=12303 CardID=BG32_172_Ge\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CONTROLLER value=13\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ATTACHED value=12299\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ENTITY_ID value=12303\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CREATOR value=12299\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1037 value=5\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CREATOR_DBID value=130794\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1475 value=3\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=1068 value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=1068 value=0\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=ZONE value=PLAY\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=CREATOR value=9141\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=CREATOR_DBID value=120026\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=TAG_SCRIPT_DATA_NUM_1 value=36\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=TAG_SCRIPT_DATA_NUM_2 value=29\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=3528 value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=COPIED_FROM_ENTITY_ID value=12103\r\n\t\t// So the script 1/2 are probably the total attack of the magnetized Auto Assemblers. If some of them got buffed,\r\n\t\t// we can't get back the base attack of the Auto Assemblers.\r\n\t\t// So this doesn't work, but it's the best approximation I can think of right now.\r\n\t\tconst attackPerMinion =\r\n\t\t\tenchantment.cardId === CardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge\r\n\t\t\t\t? input.gameState.allCards.getCard(CardIds.AutoAssembler_BG32_172_G)?.attack ?? 0\r\n\t\t\t\t: input.gameState.allCards.getCard(CardIds.AutoAssembler_BG32_172)?.attack ?? 0;\r\n\t\tconst loops = Math.floor((enchantment.tagScriptDataNum1 || attackPerMinion) / attackPerMinion);\r\n\t\treturn simplifiedSpawnEntities(cardIdToSpawn, loops, input);\r\n\t},\r\n};\r\n"]}
@@ -16,7 +16,7 @@ exports.BananaSlamma = {
16
16
  return;
17
17
  }
18
18
  const mult = slam.cardId === "BG26_802_G" ? 3 : 2;
19
- (0, stats_1.setEntityStats)(spawned, spawned.attack * mult, spawned.health, board, hero, gameState);
19
+ (0, stats_1.setEntityStats)(spawned, spawned.attack * mult, 0, board, hero, gameState);
20
20
  gameState.spectator.registerPowerTarget(slam, spawned, board, null, null);
21
21
  },
22
22
  };
@@ -1 +1 @@
1
- {"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAuB,EAAE,SAAS,CAAC,CAAC;QAC1G,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const BananaSlamma: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BananaSlamma_BG26_802, CardIds.BananaSlamma_BG26_802_G],\r\n\tafterOtherSpawned: (minion: BoardEntity | BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tconst slam = minion as BoardEntity;\r\n\t\tif (!spawned || spawned.entityId === slam.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = slam.cardId === CardIds.BananaSlamma_BG26_802_G ? 3 : 2;\r\n\t\tsetEntityStats(spawned, spawned.attack * mult, spawned.health, board, hero as BgsPlayerEntity, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(slam, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAuB,EAAE,SAAS,CAAC,CAAC;QAC7F,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const BananaSlamma: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BananaSlamma_BG26_802, CardIds.BananaSlamma_BG26_802_G],\r\n\tafterOtherSpawned: (minion: BoardEntity | BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tconst slam = minion as BoardEntity;\r\n\t\tif (!spawned || spawned.entityId === slam.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = slam.cardId === CardIds.BananaSlamma_BG26_802_G ? 3 : 2;\r\n\t\tsetEntityStats(spawned, spawned.attack * mult, 0, board, hero as BgsPlayerEntity, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(slam, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
@@ -17,17 +17,15 @@ exports.Battlecruiser = {
17
17
  const aliveEntities = input.opponentBoard.filter((entity) => entity.health > 0 && !entity.definitelyDead);
18
18
  const targetEntityId = (_a = (0, utils_1.getRandomMinionWithHighestHealth)(aliveEntities)) === null || _a === void 0 ? void 0 : _a.entityId;
19
19
  const cannonDamage = Math.max(...yamatoCannons.map((e) => e.tagScriptDataNum1));
20
- for (const yamatoCannon of yamatoCannons) {
21
- const loops = ((_b = minion.tags) === null || _b === void 0 ? void 0 : _b[reference_data_1.GameTag.BACON_YAMATO_CANNON]) === 1 ? 2 : 1;
22
- for (let i = 0; i < loops; i++) {
23
- let target = input.opponentBoard.find((entity) => entity.entityId === targetEntityId);
24
- if (!target || target.health <= 0 || target.definitelyDead) {
25
- target = (0, utils_1.getRandomMinionWithHighestHealth)(input.opponentBoard);
26
- }
27
- if (!!target) {
28
- input.gameState.spectator.registerPowerTarget(minion, target, input.opponentBoard, input.playerEntity, input.opponentEntity);
29
- (0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, minion, cannonDamage, input.playerBoard, input.playerEntity, input.gameState);
30
- }
20
+ const loops = ((_b = minion.tags) === null || _b === void 0 ? void 0 : _b[reference_data_1.GameTag.BACON_YAMATO_CANNON]) === 1 ? 2 : 1;
21
+ for (let i = 0; i < loops; i++) {
22
+ let target = input.opponentBoard.find((entity) => entity.entityId === targetEntityId);
23
+ if (!target || target.health <= 0 || target.definitelyDead) {
24
+ target = (0, utils_1.getRandomMinionWithHighestHealth)(input.opponentBoard);
25
+ }
26
+ if (!!target) {
27
+ input.gameState.spectator.registerPowerTarget(minion, target, input.opponentBoard, input.playerEntity, input.opponentEntity);
28
+ (0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, minion, cannonDamage, input.playerBoard, input.playerEntity, input.gameState);
31
29
  }
32
30
  }
33
31
  return {