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

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 (63) hide show
  1. package/dist/board-entity.d.ts +1 -0
  2. package/dist/board-entity.js.map +1 -1
  3. package/dist/cards/impl/minion/abyssal-bruiser.js +14 -6
  4. package/dist/cards/impl/minion/abyssal-bruiser.js.map +1 -1
  5. package/dist/cards/impl/minion/banana-slamma.js +1 -1
  6. package/dist/cards/impl/minion/banana-slamma.js.map +1 -1
  7. package/dist/cards/impl/minion/beetle.js +7 -3
  8. package/dist/cards/impl/minion/beetle.js.map +1 -1
  9. package/dist/cards/impl/minion/bellowing-tyrant.js +7 -3
  10. package/dist/cards/impl/minion/bellowing-tyrant.js.map +1 -1
  11. package/dist/cards/impl/minion/diremuck-forager.js +5 -2
  12. package/dist/cards/impl/minion/diremuck-forager.js.map +1 -1
  13. package/dist/cards/impl/minion/falling-sky-golem.js +14 -6
  14. package/dist/cards/impl/minion/falling-sky-golem.js.map +1 -1
  15. package/dist/cards/impl/minion/karmic-chameleon.js +2 -0
  16. package/dist/cards/impl/minion/karmic-chameleon.js.map +1 -1
  17. package/dist/cards/impl/minion/malorne.js +12 -4
  18. package/dist/cards/impl/minion/malorne.js.map +1 -1
  19. package/dist/cards/impl/minion/raptor-elder.js +12 -4
  20. package/dist/cards/impl/minion/raptor-elder.js.map +1 -1
  21. package/dist/cards/impl/minion/reckless-cliffdiver.js +6 -2
  22. package/dist/cards/impl/minion/reckless-cliffdiver.js.map +1 -1
  23. package/dist/cards/impl/minion/ride-or-die.js +6 -2
  24. package/dist/cards/impl/minion/ride-or-die.js.map +1 -1
  25. package/dist/cards/impl/minion/ruthless-queensguard.js +1 -8
  26. package/dist/cards/impl/minion/ruthless-queensguard.js.map +1 -1
  27. package/dist/cards/impl/minion/sanlayn-scribe.js +1 -1
  28. package/dist/cards/impl/minion/sanlayn-scribe.js.map +1 -1
  29. package/dist/cards/impl/minion/scarlet-survivor.js +11 -7
  30. package/dist/cards/impl/minion/scarlet-survivor.js.map +1 -1
  31. package/dist/cards/impl/minion/spellbound-soul.js +12 -4
  32. package/dist/cards/impl/minion/spellbound-soul.js.map +1 -1
  33. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js +2 -2
  34. package/dist/cards/impl/minion/stomping-stegodon-enchantment.js.map +1 -1
  35. package/dist/cards/impl/minion/stomping-stegodon.js +2 -1
  36. package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
  37. package/dist/cards/impl/minion/timewarped-chameleon.js +2 -0
  38. package/dist/cards/impl/minion/timewarped-chameleon.js.map +1 -1
  39. package/dist/cards/impl/minion/timewarped-magnanimoose.js +5 -2
  40. package/dist/cards/impl/minion/timewarped-magnanimoose.js.map +1 -1
  41. package/dist/cards/impl/trinket/slamma-sticker.js +1 -1
  42. package/dist/cards/impl/trinket/slamma-sticker.js.map +1 -1
  43. package/dist/simulation/add-minion-to-board.d.ts +10 -2
  44. package/dist/simulation/add-minion-to-board.js +231 -81
  45. package/dist/simulation/add-minion-to-board.js.map +1 -1
  46. package/dist/simulation/after-attack.js +2 -0
  47. package/dist/simulation/after-attack.js.map +1 -1
  48. package/dist/simulation/attack.js +2 -0
  49. package/dist/simulation/attack.js.map +1 -1
  50. package/dist/simulation/pending-effects.d.ts +4 -0
  51. package/dist/simulation/pending-effects.js +23 -0
  52. package/dist/simulation/pending-effects.js.map +1 -0
  53. package/dist/simulation/remove-minion-from-board.d.ts +1 -1
  54. package/dist/simulation/remove-minion-from-board.js +5 -3
  55. package/dist/simulation/remove-minion-from-board.js.map +1 -1
  56. package/dist/simulation/simulator.js +2 -0
  57. package/dist/simulation/simulator.js.map +1 -1
  58. package/dist/simulation/start-of-combat/start-of-combat.js +2 -0
  59. package/dist/simulation/start-of-combat/start-of-combat.js.map +1 -1
  60. package/dist/simulation/stats.d.ts +1 -1
  61. package/dist/simulation/stats.js +3 -3
  62. package/dist/simulation/stats.js.map +1 -1
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"sanlayn-scribe.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sanlayn-scribe.ts"],"names":[],"mappings":";;;AAIA,qDAAwD;AACxD,0CAAsD;AAGzC,QAAA,aAAa,GAAgC;IACzD,OAAO,EAAE,gCAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QAC3E,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACrD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACxG,KAAK,CAAC,KAAK;aACT,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,kBAAsC;YACnD,MAAM,CAAC,MAAM,oBAAwC,CACtD;aACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEJ,IAAA,4BAAoB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5E,IAAI,CAAC,KAAK;iBACR,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,kBAAsC;gBACnD,MAAM,CAAC,MAAM,oBAAwC,CACtD;iBACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC7B,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDeathInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getTeamInitialStates } from '../../../utils';\r\nimport { OnDeathCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SanlaynScribe: OnSpawnedCard & OnDeathCard = {\r\n\tcardIds: [CardIds.SanlaynScribe_BGDUO31_208, CardIds.SanlaynScribe_BGDUO31_208_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\tconst statsBonus = mult * input.hero.globalInfo.SanlaynScribesDeadThisGame;\r\n\t\tmodifyStats(minion, minion, 4 * statsBonus, 4 * statsBonus, input.board, input.hero, input.gameState);\r\n\t},\r\n\tonDeath: (minion: BoardEntity, input: OnDeathInput) => {\r\n\t\tinput.hero.globalInfo.SanlaynScribesDeadThisGame = input.hero.globalInfo.SanlaynScribesDeadThisGame + 1;\r\n\t\tinput.board\r\n\t\t\t.filter(\r\n\t\t\t\t(entity) =>\r\n\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ||\r\n\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208_G,\r\n\t\t\t)\r\n\t\t\t.forEach((entity) => {\r\n\t\t\t\tconst mult = entity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\t\t\tmodifyStats(entity, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t});\r\n\t\t// Update the initial states to work with sandy\r\n\t\tgetTeamInitialStates(input.gameState.gameState, input.hero).forEach((team) => {\r\n\t\t\tteam.board\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(entity) =>\r\n\t\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ||\r\n\t\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208_G,\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((entity) => {\r\n\t\t\t\t\tconst mult = entity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\t\t\t\tentity.attack += 4 * mult;\r\n\t\t\t\t\tentity.health += 4 * mult;\r\n\t\t\t\t\tentity.maxHealth += 4 * mult;\r\n\t\t\t\t\tentity.maxAttack += 4 * mult;\r\n\t\t\t\t});\r\n\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sanlayn-scribe.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sanlayn-scribe.ts"],"names":[],"mappings":";;;AAIA,qDAAwD;AACxD,0CAAsD;AAGzC,QAAA,aAAa,GAAgC;IACzD,OAAO,EAAE,gCAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC;QAC3E,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAC3C,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAC3C,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACrD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,CAAC,CAAC;QACxG,KAAK,CAAC,KAAK;aACT,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,kBAAsC;YACnD,MAAM,CAAC,MAAM,oBAAwC,CACtD;aACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEJ,IAAA,4BAAoB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5E,IAAI,CAAC,KAAK;iBACR,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,kBAAsC;gBACnD,MAAM,CAAC,MAAM,oBAAwC,CACtD;iBACA,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC;gBAC7B,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDeathInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getTeamInitialStates } from '../../../utils';\r\nimport { OnDeathCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SanlaynScribe: OnSpawnedCard & OnDeathCard = {\r\n\tcardIds: [CardIds.SanlaynScribe_BGDUO31_208, CardIds.SanlaynScribe_BGDUO31_208_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\tconst statsBonus = mult * input.hero.globalInfo.SanlaynScribesDeadThisGame;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.applyAttackAuras ? 4 * statsBonus : 0,\r\n\t\t\tinput.applyHealthAuras ? 4 * statsBonus : 0,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n\tonDeath: (minion: BoardEntity, input: OnDeathInput) => {\r\n\t\tinput.hero.globalInfo.SanlaynScribesDeadThisGame = input.hero.globalInfo.SanlaynScribesDeadThisGame + 1;\r\n\t\tinput.board\r\n\t\t\t.filter(\r\n\t\t\t\t(entity) =>\r\n\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ||\r\n\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208_G,\r\n\t\t\t)\r\n\t\t\t.forEach((entity) => {\r\n\t\t\t\tconst mult = entity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\t\t\tmodifyStats(entity, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t});\r\n\t\t// Update the initial states to work with sandy\r\n\t\tgetTeamInitialStates(input.gameState.gameState, input.hero).forEach((team) => {\r\n\t\t\tteam.board\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(entity) =>\r\n\t\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ||\r\n\t\t\t\t\t\tentity.cardId === CardIds.SanlaynScribe_BGDUO31_208_G,\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((entity) => {\r\n\t\t\t\t\tconst mult = entity.cardId === CardIds.SanlaynScribe_BGDUO31_208 ? 1 : 2;\r\n\t\t\t\t\tentity.attack += 4 * mult;\r\n\t\t\t\t\tentity.health += 4 * mult;\r\n\t\t\t\t\tentity.maxHealth += 4 * mult;\r\n\t\t\t\t\tentity.maxAttack += 4 * mult;\r\n\t\t\t\t});\r\n\t\t});\r\n\t},\r\n};\r\n"]}
@@ -4,19 +4,23 @@ exports.ScarletSurvivor = void 0;
4
4
  const divine_shield_1 = require("../../../keywords/divine-shield");
5
5
  const THRESHOLD = 6;
6
6
  const tryGrantDivineShieldOnce = (minion, board, hero, otherHero, gameState) => {
7
+ var _a;
7
8
  if (minion.abiityChargesLeft <= 0 ||
8
9
  minion.attack < THRESHOLD ||
9
10
  minion.enchantments.some((e) => e.cardId === "BG35_814e")) {
10
11
  return;
11
12
  }
12
13
  minion.abiityChargesLeft = 0;
13
- (0, divine_shield_1.updateDivineShield)(minion, board, hero, otherHero, true, gameState);
14
- minion.enchantments.push({
15
- cardId: "BG35_814e",
16
- originEntityId: minion.entityId,
17
- timing: gameState.sharedState.currentEntityId++,
18
- tagScriptDataNum1: -1,
19
- tagScriptDataNum2: -1,
14
+ minion.onResolve = (_a = minion.onResolve) !== null && _a !== void 0 ? _a : [];
15
+ minion.onResolve.push(() => {
16
+ (0, divine_shield_1.updateDivineShield)(minion, board, hero, otherHero, true, gameState);
17
+ minion.enchantments.push({
18
+ cardId: "BG35_814e",
19
+ originEntityId: minion.entityId,
20
+ timing: gameState.sharedState.currentEntityId++,
21
+ tagScriptDataNum1: -1,
22
+ tagScriptDataNum2: -1,
23
+ });
20
24
  });
21
25
  };
22
26
  exports.ScarletSurvivor = {
@@ -1 +1 @@
1
- {"version":3,"file":"scarlet-survivor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/scarlet-survivor.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AAOrE,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,wBAAwB,GAAG,CAChC,MAAmB,EACnB,KAAoB,EACpB,IAAqB,EACrB,SAA0B,EAC1B,SAAwB,EACjB,EAAE;IACT,IACC,MAAM,CAAC,iBAAiB,IAAI,CAAC;QAC7B,MAAM,CAAC,MAAM,GAAG,SAAS;QACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,gBAA0D,CAAC,EAClG;QACD,OAAO;KACP;IACD,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAC7B,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;QACxB,MAAM,aAAuD;QAC7D,cAAc,EAAE,MAAM,CAAC,QAAQ;QAC/B,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;QAC/C,iBAAiB,EAAE,CAAC,CAAC;QACrB,iBAAiB,EAAE,CAAC,CAAC;KACrB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,eAAe,GAA4D;IACvF,OAAO,EAAE,0BAAsE;IAC/E,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;YAC9C,OAAO;SACP;QACD,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, OnSpawnedCard, OnStatsChangedCard } from '../../card.interface';\r\n\r\nconst THRESHOLD = 6;\r\n\r\nconst tryGrantDivineShieldOnce = (\r\n\tminion: BoardEntity,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (\r\n\t\tminion.abiityChargesLeft <= 0 ||\r\n\t\tminion.attack < THRESHOLD ||\r\n\t\tminion.enchantments.some((e) => e.cardId === CardIds.ScarletSurvivor_SurvivedEnchantment_BG35_814e)\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\tminion.abiityChargesLeft = 0;\r\n\tupdateDivineShield(minion, board, hero, otherHero, true, gameState);\r\n\tminion.enchantments.push({\r\n\t\tcardId: CardIds.ScarletSurvivor_SurvivedEnchantment_BG35_814e,\r\n\t\toriginEntityId: minion.entityId,\r\n\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\ttagScriptDataNum1: -1,\r\n\t\ttagScriptDataNum2: -1,\r\n\t});\r\n};\r\n\r\nexport const ScarletSurvivor: OnSpawnedCard & OnStatsChangedCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.ScarletSurvivor_BG35_814, CardIds.ScarletSurvivor_BG35_814_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 1,\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst otherHero =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.player\r\n\t\t\t\t: input.gameState.gameState.player.player;\r\n\t\ttryGrantDivineShieldOnce(minion, input.board, input.hero, otherHero, input.gameState);\r\n\t},\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target.entityId !== minion.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttryGrantDivineShieldOnce(minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"scarlet-survivor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/scarlet-survivor.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AAOrE,MAAM,SAAS,GAAG,CAAC,CAAC;AAEpB,MAAM,wBAAwB,GAAG,CAChC,MAAmB,EACnB,KAAoB,EACpB,IAAqB,EACrB,SAA0B,EAC1B,SAAwB,EACjB,EAAE;;IACT,IACC,MAAM,CAAC,iBAAiB,IAAI,CAAC;QAC7B,MAAM,CAAC,MAAM,GAAG,SAAS;QACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,gBAA0D,CAAC,EAClG;QACD,OAAO;KACP;IACD,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;IAE7B,MAAM,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC;IAC1C,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAC1B,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,MAAM,aAAuD;YAC7D,cAAc,EAAE,MAAM,CAAC,QAAQ;YAC/B,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;YAC/C,iBAAiB,EAAE,CAAC,CAAC;YACrB,iBAAiB,EAAE,CAAC,CAAC;SACrB,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,eAAe,GAA4D;IACvF,OAAO,EAAE,0BAAsE;IAC/E,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;YAC9C,OAAO;SACP;QACD,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { BgsPlayerEntity } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { FullGameState } from '../../../simulation/internal-game-state';\r\nimport { OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { DefaultChargesCard, OnSpawnedCard, OnStatsChangedCard } from '../../card.interface';\r\n\r\nconst THRESHOLD = 6;\r\n\r\nconst tryGrantDivineShieldOnce = (\r\n\tminion: BoardEntity,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (\r\n\t\tminion.abiityChargesLeft <= 0 ||\r\n\t\tminion.attack < THRESHOLD ||\r\n\t\tminion.enchantments.some((e) => e.cardId === CardIds.ScarletSurvivor_SurvivedEnchantment_BG35_814e)\r\n\t) {\r\n\t\treturn;\r\n\t}\r\n\tminion.abiityChargesLeft = 0;\r\n\r\n\tminion.onResolve = minion.onResolve ?? [];\r\n\tminion.onResolve.push(() => {\r\n\t\tupdateDivineShield(minion, board, hero, otherHero, true, gameState);\r\n\t\tminion.enchantments.push({\r\n\t\t\tcardId: CardIds.ScarletSurvivor_SurvivedEnchantment_BG35_814e,\r\n\t\t\toriginEntityId: minion.entityId,\r\n\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t\ttagScriptDataNum1: -1,\r\n\t\t\ttagScriptDataNum2: -1,\r\n\t\t});\r\n\t});\r\n};\r\n\r\nexport const ScarletSurvivor: OnSpawnedCard & OnStatsChangedCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.ScarletSurvivor_BG35_814, CardIds.ScarletSurvivor_BG35_814_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 1,\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst otherHero =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.player\r\n\t\t\t\t: input.gameState.gameState.player.player;\r\n\t\ttryGrantDivineShieldOnce(minion, input.board, input.hero, otherHero, input.gameState);\r\n\t},\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target.entityId !== minion.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttryGrantDivineShieldOnce(minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -6,14 +6,22 @@ exports.SpellboundSoul = {
6
6
  onSpawned: (minion, input) => {
7
7
  const mult = minion.cardId === "BG34_110_G" ? 2 : 1;
8
8
  const totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;
9
- minion.attack += 2 * totalSpellsCast * mult;
10
- minion.health += 1 * totalSpellsCast * mult;
9
+ if (input.applyAttackAuras) {
10
+ minion.attack += 2 * totalSpellsCast * mult;
11
+ }
12
+ if (input.applyHealthAuras) {
13
+ minion.health += 1 * totalSpellsCast * mult;
14
+ }
11
15
  },
12
16
  onDespawned: (minion, input) => {
13
17
  const mult = minion.cardId === "BG34_110_G" ? 2 : 1;
14
18
  const totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;
15
- minion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);
16
- minion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);
19
+ if (input.applyAttackAuras) {
20
+ minion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);
21
+ }
22
+ if (input.applyHealthAuras) {
23
+ minion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);
24
+ }
17
25
  },
18
26
  };
19
27
  //# sourceMappingURL=spellbound-soul.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spellbound-soul.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spellbound-soul.ts"],"names":[],"mappings":";;;AAKa,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;QAC5C,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SpellboundSoul: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.SpellboundSoul_BG34_110, CardIds.SpellboundSoul_BG34_110_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tminion.attack += 2 * totalSpellsCast * mult;\r\n\t\tminion.health += 1 * totalSpellsCast * mult;\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tminion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);\r\n\t\tminion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"spellbound-soul.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spellbound-soul.ts"],"names":[],"mappings":";;;AAKa,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;SAC5C;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;SAC5C;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;SACxE;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;SACxE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SpellboundSoul: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.SpellboundSoul_BG34_110, CardIds.SpellboundSoul_BG34_110_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += 2 * totalSpellsCast * mult;\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health += 1 * totalSpellsCast * mult;\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -11,7 +11,7 @@ exports.StompingStegodonEnchantment = {
11
11
  "BG33_840_Ge2",
12
12
  ],
13
13
  rally: (enchantment, input) => {
14
- var _a;
14
+ var _a, _b;
15
15
  const mult = enchantment.cardId === "BG33_840_Ge2" ? 2 : 1;
16
16
  const nbOfTriggers = (_a = enchantment.repeats) !== null && _a !== void 0 ? _a : 1;
17
17
  const enchantmentCardIdToAdd = enchantment.cardId === "BG33_840_Ge2"
@@ -31,7 +31,7 @@ exports.StompingStegodonEnchantment = {
31
31
  };
32
32
  candidate.enchantments.push(existingEnchantment);
33
33
  }
34
- existingEnchantment.repeats += nbOfTriggers;
34
+ existingEnchantment.repeats = ((_b = existingEnchantment.repeats) !== null && _b !== void 0 ? _b : 0) + nbOfTriggers;
35
35
  }
36
36
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
37
37
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stomping-stegodon-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon-enchantment.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAEjD,2DAAqF;AAExE,QAAA,2BAA2B,GAAc;IACrD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAA6B,EAAE,KAAoB,EAAE,EAAE;;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,mBAA8D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,CAAC,CAAC;QAC9C,MAAM,sBAAsB,GAC3B,WAAW,CAAC,MAAM,mBAA8D;YAC/E,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC;SAC5C;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEnchantment } from '../../../board-entity';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\nimport { stompingStegodonAttack, stompingStegodonHealth } from './stomping-stegodon';\r\n\r\nexport const StompingStegodonEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840e2,\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2,\r\n\t],\r\n\trally: (enchantment: BoardEnchantment, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2 ? 2 : 1;\r\n\t\tconst nbOfTriggers = enchantment.repeats ?? 1;\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tenchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * nbOfTriggers * mult,\r\n\t\t\t\tstompingStegodonHealth * nbOfTriggers * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += nbOfTriggers;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stomping-stegodon-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon-enchantment.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAEjD,2DAAqF;AAExE,QAAA,2BAA2B,GAAc;IACrD,OAAO,EAAE;;;KAGR;IACD,KAAK,EAAE,CAAC,WAA6B,EAAE,KAAoB,EAAE,EAAE;;QAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,mBAA8D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,YAAY,GAAG,MAAA,WAAW,CAAC,OAAO,mCAAI,CAAC,CAAC;QAC9C,MAAM,sBAAsB,GAC3B,WAAW,CAAC,MAAM,mBAA8D;YAC/E,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,0CAAsB,GAAG,YAAY,GAAG,IAAI,EAC5C,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,GAAG,CAAC,MAAA,mBAAmB,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,YAAY,CAAC;SAChF;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEnchantment } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\nimport { stompingStegodonAttack, stompingStegodonHealth } from './stomping-stegodon';\r\n\r\nexport const StompingStegodonEnchantment: RallyCard = {\r\n\tcardIds: [\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840e2,\r\n\t\tCardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2,\r\n\t],\r\n\trally: (enchantment: BoardEnchantment, input: OnAttackInput) => {\r\n\t\tconst mult = enchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2 ? 2 : 1;\r\n\t\tconst nbOfTriggers = enchantment.repeats ?? 1;\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tenchantment.cardId === CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * nbOfTriggers * mult,\r\n\t\t\t\tstompingStegodonHealth * nbOfTriggers * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats = (existingEnchantment.repeats ?? 0) + nbOfTriggers;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -9,6 +9,7 @@ exports.stompingStegodonHealth = 0;
9
9
  exports.StompingStegodon = {
10
10
  cardIds: ["BG33_840", "BG33_840_G"],
11
11
  rally: (minion, input) => {
12
+ var _a;
12
13
  const mult = minion.cardId === "BG33_840_G" ? 2 : 1;
13
14
  const candidates = input.attackingBoard.filter((e) => e !== input.attacker &&
14
15
  (0, utils_1.hasCorrectTribe)(e, input.attackingHero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
@@ -27,7 +28,7 @@ exports.StompingStegodon = {
27
28
  };
28
29
  candidate.enchantments.push(existingEnchantment);
29
30
  }
30
- existingEnchantment.repeats += 1;
31
+ existingEnchantment.repeats = ((_a = existingEnchantment.repeats) !== null && _a !== void 0 ? _a : 0) + 1;
31
32
  }
32
33
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
33
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,gBAAgB,GAAc;IAC1C,OAAO,EAAE,0BAAwE;IACjF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,IAAI,CAAC,CAAC;SACjC;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Stomping Stegodon (Tier 4, 4/3)\r\n * Rally: Give your other Beasts +4 Attack and this Rally.\r\n *\r\n * Golden Stomping Stegodon (Tier 4, 8/6)\r\n * Rally: Give your other Beasts +8 Attack and this Rally.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack = 4;\r\nexport const stompingStegodonHealth = 0;\r\n\r\nexport const StompingStegodon: RallyCard = {\r\n\tcardIds: [CardIds.StompingStegodon_BG33_840, CardIds.StompingStegodon_BG33_840_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.StompingStegodon_BG33_840_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tminion.cardId === CardIds.StompingStegodon_BG33_840_G\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * mult,\r\n\t\t\t\tstompingStegodonHealth * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats += 1;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,gBAAgB,GAAc;IAC1C,OAAO,EAAE,0BAAwE;IACjF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,GAAG,CAAC,MAAA,mBAAmB,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACrE;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Stomping Stegodon (Tier 4, 4/3)\r\n * Rally: Give your other Beasts +4 Attack and this Rally.\r\n *\r\n * Golden Stomping Stegodon (Tier 4, 8/6)\r\n * Rally: Give your other Beasts +8 Attack and this Rally.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack = 4;\r\nexport const stompingStegodonHealth = 0;\r\n\r\nexport const StompingStegodon: RallyCard = {\r\n\tcardIds: [CardIds.StompingStegodon_BG33_840, CardIds.StompingStegodon_BG33_840_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.StompingStegodon_BG33_840_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tminion.cardId === CardIds.StompingStegodon_BG33_840_G\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * mult,\r\n\t\t\t\tstompingStegodonHealth * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats = (existingEnchantment.repeats ?? 0) + 1;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -29,6 +29,8 @@ exports.TimewarpedChameleon = {
29
29
  hero: input.playerEntity,
30
30
  board: board,
31
31
  gameState: input.gameState,
32
+ applyAttackAuras: true,
33
+ applyHealthAuras: true,
32
34
  });
33
35
  }
34
36
  return { hasTriggered: true, shouldRecomputeCurrentAttacker: false };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-chameleon.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA4C;AAC5C,yDAAuE;AACvE,sDAAiD;AAEpC,QAAA,mBAAmB,GAAsB;IACrD,OAAO,EAAE,sCAA0F;IACnG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpG,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,eAAe,EAAE;gBACtB,MAAM,KAAK,GAAgB;oBAC1B,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC;oBAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACvD,CAAC;gBACF,IAAI,MAAM,CAAC,MAAM,uBAAiD,EAAE;oBACnE,IAAA,yBAAgB,EACf,KAAK,EACL,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBAEF,MAAM,aAAa,GAAG,6BAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE;oBAChC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE;wBAC9B,IAAI,EAAE,KAAK,CAAC,YAAY;wBACxB,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC1B,CAAC,CAAC;iBACH;gBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;aACrE;SACD;QACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { copyEntity } from '../../../utils';\r\nimport { hasOnSpawned, StartOfCombatCard } from '../../card.interface';\r\nimport { cardMappings } from '../_card-mappings';\r\n\r\nexport const TimewarpedChameleon: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedChameleon_BG34_Giant_042, CardIds.TimewarpedChameleon_BG34_Giant_042_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst board = input.playerBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst chameleonIndex = input.playerBoard.findIndex((entity) => entity.entityId === minion.entityId);\r\n\t\tif (chameleonIndex > 0) {\r\n\t\t\tconst minionToTheLeft = board[chameleonIndex - 1];\r\n\t\t\tif (!!minionToTheLeft) {\r\n\t\t\t\tconst clone: BoardEntity = {\r\n\t\t\t\t\t...copyEntity(minionToTheLeft),\r\n\t\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t};\r\n\t\t\t\tif (minion.cardId === CardIds.TimewarpedChameleon_BG34_Giant_042_G) {\r\n\t\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\t\tclone,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tinput.playerBoard.splice(chameleonIndex, 1, clone);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminionToTheLeft,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\t// Also need to apply the aura, if it has one\r\n\t\t\t\tconst onSpawnedImpl = cardMappings[clone.cardId];\r\n\t\t\t\tif (hasOnSpawned(onSpawnedImpl)) {\r\n\t\t\t\t\tonSpawnedImpl.onSpawned(clone, {\r\n\t\t\t\t\t\thero: input.playerEntity,\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: false };\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { hasTriggered: false, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-chameleon.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA4C;AAC5C,yDAAuE;AACvE,sDAAiD;AAEpC,QAAA,mBAAmB,GAAsB;IACrD,OAAO,EAAE,sCAA0F;IACnG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACjF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpG,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,eAAe,EAAE;gBACtB,MAAM,KAAK,GAAgB;oBAC1B,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC;oBAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACvD,CAAC;gBACF,IAAI,MAAM,CAAC,MAAM,uBAAiD,EAAE;oBACnE,IAAA,yBAAgB,EACf,KAAK,EACL,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBAEF,MAAM,aAAa,GAAG,6BAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAA,6BAAY,EAAC,aAAa,CAAC,EAAE;oBAChC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE;wBAC9B,IAAI,EAAE,KAAK,CAAC,YAAY;wBACxB,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,gBAAgB,EAAE,IAAI;wBACtB,gBAAgB,EAAE,IAAI;qBACtB,CAAC,CAAC;iBACH;gBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;aACrE;SACD;QACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { copyEntity } from '../../../utils';\r\nimport { hasOnSpawned, StartOfCombatCard } from '../../card.interface';\r\nimport { cardMappings } from '../_card-mappings';\r\n\r\nexport const TimewarpedChameleon: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedChameleon_BG34_Giant_042, CardIds.TimewarpedChameleon_BG34_Giant_042_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst board = input.playerBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst chameleonIndex = input.playerBoard.findIndex((entity) => entity.entityId === minion.entityId);\r\n\t\tif (chameleonIndex > 0) {\r\n\t\t\tconst minionToTheLeft = board[chameleonIndex - 1];\r\n\t\t\tif (!!minionToTheLeft) {\r\n\t\t\t\tconst clone: BoardEntity = {\r\n\t\t\t\t\t...copyEntity(minionToTheLeft),\r\n\t\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t};\r\n\t\t\t\tif (minion.cardId === CardIds.TimewarpedChameleon_BG34_Giant_042_G) {\r\n\t\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\t\tclone,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tinput.playerBoard.splice(chameleonIndex, 1, clone);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminionToTheLeft,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\t// Also need to apply the aura, if it has one\r\n\t\t\t\tconst onSpawnedImpl = cardMappings[clone.cardId];\r\n\t\t\t\tif (hasOnSpawned(onSpawnedImpl)) {\r\n\t\t\t\t\tonSpawnedImpl.onSpawned(clone, {\r\n\t\t\t\t\t\thero: input.playerEntity,\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t\t\tapplyAttackAuras: true,\r\n\t\t\t\t\t\tapplyHealthAuras: true,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: false };\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { hasTriggered: false, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
@@ -7,11 +7,14 @@ const utils_2 = require("../../../utils");
7
7
  exports.TimewarpedMagnanimoose = {
8
8
  cardIds: ["BG34_Giant_619", "BG34_Giant_619_G"],
9
9
  deathrattleSpawn: (minion, input) => {
10
- const playerInitialState = input.gameState.gameState.playerInitial;
10
+ var _a;
11
11
  const loops = minion.cardId === "BG34_Giant_619_G" ? 2 : 1;
12
12
  const spawned = [];
13
13
  for (let i = 0; i < loops; i++) {
14
- const randomMinion = (0, utils_1.pickRandom)(playerInitialState.board);
14
+ const randomMinion = (_a = (0, utils_1.pickRandom)(input.gameState.gameState.playerInitial.board)) !== null && _a !== void 0 ? _a : (0, utils_1.pickRandom)(input.gameState.gameState.opponentInitial.board);
15
+ if (!randomMinion) {
16
+ return [];
17
+ }
15
18
  const clone = (0, utils_2.copyEntity)(randomMinion);
16
19
  spawned.push(...(0, deathrattle_spawns_1.simplifiedSpawnEntities)(clone.cardId, 1, input, clone));
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-magnanimoose.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-magnanimoose.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,+EAAiF;AACjF,0CAA4C;AAG/B,QAAA,sBAAsB,GAAyB;IAC3D,OAAO,EAAE,sCAAgG;IACzG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,uBAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAE/B,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAA,4CAAuB,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { copyEntity } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMagnanimoose: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedMagnanimoose_BG34_Giant_619, CardIds.TimewarpedMagnanimoose_BG34_Giant_619_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst playerInitialState = input.gameState.gameState.playerInitial;\r\n\t\tconst loops = minion.cardId === CardIds.TimewarpedMagnanimoose_BG34_Giant_619_G ? 2 : 1;\r\n\t\tconst spawned = [];\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t// We don't know the opponents warbands, so we pick something from our own warband instead, as a proxy\r\n\t\t\tconst randomMinion = pickRandom(playerInitialState.board);\r\n\t\t\tconst clone = copyEntity(randomMinion);\r\n\t\t\tspawned.push(...simplifiedSpawnEntities(clone.cardId, 1, input, clone));\r\n\t\t}\r\n\t\treturn spawned;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-magnanimoose.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-magnanimoose.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,+EAAiF;AACjF,0CAA4C;AAG/B,QAAA,sBAAsB,GAAyB;IAC3D,OAAO,EAAE,sCAAgG;IACzG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,uBAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAE/B,MAAM,YAAY,GACjB,MAAA,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,mCACzD,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,EAAE;gBAClB,OAAO,EAAE,CAAC;aACV;YACD,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAA,4CAAuB,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SACxE;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { copyEntity } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMagnanimoose: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedMagnanimoose_BG34_Giant_619, CardIds.TimewarpedMagnanimoose_BG34_Giant_619_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.TimewarpedMagnanimoose_BG34_Giant_619_G ? 2 : 1;\r\n\t\tconst spawned = [];\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t// We don't know the opponents warbands, so we pick something from our own warband instead, as a proxy\r\n\t\t\tconst randomMinion =\r\n\t\t\t\tpickRandom(input.gameState.gameState.playerInitial.board) ??\r\n\t\t\t\tpickRandom(input.gameState.gameState.opponentInitial.board);\r\n\t\t\tif (!randomMinion) {\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t\tconst clone = copyEntity(randomMinion);\r\n\t\t\tspawned.push(...simplifiedSpawnEntities(clone.cardId, 1, input, clone));\r\n\t\t}\r\n\t\treturn spawned;\r\n\t},\r\n};\r\n"]}
@@ -11,7 +11,7 @@ exports.SlammaSticker = {
11
11
  if (!(0, utils_1.hasCorrectTribe)(spawned, hero, reference_data_1.Race.BEAST, gameState.anomalies, gameState.allCards)) {
12
12
  return;
13
13
  }
14
- (0, stats_1.setEntityStats)(spawned, spawned.attack * 2, 0, board, hero, gameState);
14
+ (0, stats_1.setEntityStats)(spawned, spawned.attack * 2, spawned.health, board, hero, gameState, true, false);
15
15
  gameState.spectator.registerPowerTarget(hero, spawned, board, null, null);
16
16
  },
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"slamma-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/slamma-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,sBAA0C;IACnD,iBAAiB,EAAE,CAAC,QAAsB,EAAE,KAAwB,EAAE,EAAE;QACvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,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,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACvE,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 { BoardTrinket } from '../../../bgs-player-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 SlammaSticker: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.SlammaSticker_BG30_MagicItem_540],\r\n\tafterOtherSpawned: (_trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\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\tsetEntityStats(spawned, spawned.attack * 2, 0, board, hero, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(hero, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"slamma-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/slamma-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,sBAA0C;IACnD,iBAAiB,EAAE,CAAC,QAAsB,EAAE,KAAwB,EAAE,EAAE;QACvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,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,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjG,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 { BoardTrinket } from '../../../bgs-player-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 SlammaSticker: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.SlammaSticker_BG30_MagicItem_540],\r\n\tafterOtherSpawned: (_trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\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\tsetEntityStats(spawned, spawned.attack * 2, spawned.health, board, hero, gameState, true, false);\r\n\t\tgameState.spectator.registerPowerTarget(hero, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
@@ -3,14 +3,16 @@ import { BoardEntity } from '../board-entity';
3
3
  import { FullGameState } from './internal-game-state';
4
4
  export declare const addMinionToBoard: (board: BoardEntity[], boardHero: BgsPlayerEntity, otherBoard: BoardEntity[], otherHero: BgsPlayerEntity, index: number, minionToAdd: BoardEntity, gameState: FullGameState, applySelfAuras?: boolean) => void;
5
5
  export declare const handleAddedMinionAuraEffect: (board: BoardEntity[], boardHero: BgsPlayerEntity, otherBoard: BoardEntity[], otherHero: BgsPlayerEntity, spawned: BoardEntity, gameState: FullGameState, applySelfAuras?: boolean, isActuallySpawned?: boolean) => void;
6
- export declare const applyAurasToSelf: (spawned: BoardEntity, board: BoardEntity[], boardHero: BgsPlayerEntity, gameState: FullGameState) => void;
7
- export declare const removeAurasFromSelf: (entity: BoardEntity, board: BoardEntity[], boardHero: BgsPlayerEntity, gameState: FullGameState) => void;
6
+ export declare const applyAurasToSelf: (spawned: BoardEntity, board: BoardEntity[], boardHero: BgsPlayerEntity, gameState: FullGameState, applyAttackAuras?: boolean, applyHealthAuras?: boolean) => void;
7
+ export declare const removeAurasFromSelf: (entity: BoardEntity, board: BoardEntity[], boardHero: BgsPlayerEntity, gameState: FullGameState, applyAttackAuras?: boolean, applyHealthAuras?: boolean) => void;
8
8
  export declare const handleAfterSpawnEffects: (board: BoardEntity[], hero: BgsPlayerEntity, otherBoard: BoardEntity[], otherHero: BgsPlayerEntity, allSpawned: readonly BoardEntity[], gameState: FullGameState) => void;
9
9
  export declare const onMinionSummoned: (hero: BgsPlayerEntity, board: BoardEntity[], gameState: FullGameState) => void;
10
10
  export interface OnSpawnInput {
11
11
  hero: BgsPlayerEntity;
12
12
  board: BoardEntity[];
13
13
  gameState: FullGameState;
14
+ applyAttackAuras: boolean;
15
+ applyHealthAuras: boolean;
14
16
  }
15
17
  export interface OnOtherSpawnInput {
16
18
  spawned: BoardEntity;
@@ -19,6 +21,8 @@ export interface OnOtherSpawnInput {
19
21
  otherHero: BgsPlayerEntity;
20
22
  otherBoard: BoardEntity[];
21
23
  gameState: FullGameState;
24
+ applyAttackAuras: boolean;
25
+ applyHealthAuras: boolean;
22
26
  applySelfAuras: boolean;
23
27
  }
24
28
  export interface OnOtherSpawnAuraInput {
@@ -26,11 +30,15 @@ export interface OnOtherSpawnAuraInput {
26
30
  hero: BgsPlayerEntity;
27
31
  board: BoardEntity[];
28
32
  gameState: FullGameState;
33
+ applyAttackAuras: boolean;
34
+ applyHealthAuras: boolean;
29
35
  }
30
36
  export interface OnDespawnInput {
31
37
  hero: BgsPlayerEntity;
32
38
  board: BoardEntity[];
33
39
  gameState: FullGameState;
40
+ applyAttackAuras: boolean;
41
+ applyHealthAuras: boolean;
34
42
  }
35
43
  export interface OnFriendlyMinionSummonedTrinketInput {
36
44
  spawned: BoardEntity;