@firestone-hs/simulate-bgs-battle 1.1.506 → 1.1.507

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 (69) hide show
  1. package/dist/cards/impl/enchantments/crystal-infuser-enchantment.js +5 -2
  2. package/dist/cards/impl/enchantments/crystal-infuser-enchantment.js.map +1 -1
  3. package/dist/cards/impl/hero-power/rapid-reanimation.js +0 -2
  4. package/dist/cards/impl/hero-power/rapid-reanimation.js.map +1 -1
  5. package/dist/cards/impl/minion/arcane-cannoneer.js +2 -2
  6. package/dist/cards/impl/minion/arcane-cannoneer.js.map +1 -1
  7. package/dist/cards/impl/minion/beetle.js +1 -1
  8. package/dist/cards/impl/minion/beetle.js.map +1 -1
  9. package/dist/cards/impl/minion/boar-gamer.js +2 -2
  10. package/dist/cards/impl/minion/boar-gamer.js.map +1 -1
  11. package/dist/cards/impl/minion/bubble-gunner.js +2 -2
  12. package/dist/cards/impl/minion/bubble-gunner.js.map +1 -1
  13. package/dist/cards/impl/minion/buzzing-vermin.js +3 -3
  14. package/dist/cards/impl/minion/buzzing-vermin.js.map +1 -1
  15. package/dist/cards/impl/minion/deathly-striker.js +2 -2
  16. package/dist/cards/impl/minion/deathly-striker.js.map +1 -1
  17. package/dist/cards/impl/minion/efficient-engineer.js +2 -2
  18. package/dist/cards/impl/minion/efficient-engineer.js.map +1 -1
  19. package/dist/cards/impl/minion/forest-rover.js +5 -5
  20. package/dist/cards/impl/minion/forest-rover.js.map +1 -1
  21. package/dist/cards/impl/minion/fountain-chiller.js +2 -2
  22. package/dist/cards/impl/minion/fountain-chiller.js.map +1 -1
  23. package/dist/cards/impl/minion/gem-rat.js +4 -2
  24. package/dist/cards/impl/minion/gem-rat.js.map +1 -1
  25. package/dist/cards/impl/minion/gritty-headhunter.js +4 -4
  26. package/dist/cards/impl/minion/gritty-headhunter.js.map +1 -1
  27. package/dist/cards/impl/minion/hackerfin.js +2 -2
  28. package/dist/cards/impl/minion/hackerfin.js.map +1 -1
  29. package/dist/cards/impl/minion/holo-rover.js +2 -2
  30. package/dist/cards/impl/minion/holo-rover.js.map +1 -1
  31. package/dist/cards/impl/minion/implant-subject.js +2 -2
  32. package/dist/cards/impl/minion/implant-subject.js.map +1 -1
  33. package/dist/cards/impl/minion/marquee-ticker.js +2 -2
  34. package/dist/cards/impl/minion/marquee-ticker.js.map +1 -1
  35. package/dist/cards/impl/minion/moonsteel-juggernaut.js +8 -5
  36. package/dist/cards/impl/minion/moonsteel-juggernaut.js.map +1 -1
  37. package/dist/cards/impl/minion/mutated-lasher.js +3 -3
  38. package/dist/cards/impl/minion/mutated-lasher.js.map +1 -1
  39. package/dist/cards/impl/minion/neon-agent.js +2 -2
  40. package/dist/cards/impl/minion/neon-agent.js.map +1 -1
  41. package/dist/cards/impl/minion/nest-swarmer.js +3 -3
  42. package/dist/cards/impl/minion/nest-swarmer.js.map +1 -1
  43. package/dist/cards/impl/minion/reckless-cliffdiver.js +4 -4
  44. package/dist/cards/impl/minion/reckless-cliffdiver.js.map +1 -1
  45. package/dist/cards/impl/minion/runed-progenitor.js +5 -5
  46. package/dist/cards/impl/minion/runed-progenitor.js.map +1 -1
  47. package/dist/cards/impl/minion/salty-hog.js +2 -2
  48. package/dist/cards/impl/minion/salty-hog.js.map +1 -1
  49. package/dist/cards/impl/minion/showy-cyclist.js +2 -2
  50. package/dist/cards/impl/minion/showy-cyclist.js.map +1 -1
  51. package/dist/cards/impl/minion/silver-handed-recruit.js +2 -2
  52. package/dist/cards/impl/minion/silver-handed-recruit.js.map +1 -1
  53. package/dist/cards/impl/minion/spacefarer.js +2 -2
  54. package/dist/cards/impl/minion/spacefarer.js.map +1 -1
  55. package/dist/cards/impl/minion/turquoise-skitterer.js +5 -5
  56. package/dist/cards/impl/minion/turquoise-skitterer.js.map +1 -1
  57. package/dist/cards/impl/minion/twilight-primordium.js +2 -2
  58. package/dist/cards/impl/minion/twilight-primordium.js.map +1 -1
  59. package/dist/cards/impl/minion/ultraviolet-ascendant.js +2 -2
  60. package/dist/cards/impl/minion/ultraviolet-ascendant.js.map +1 -1
  61. package/dist/cards/impl/minion/wandering-wight.js +2 -2
  62. package/dist/cards/impl/minion/wandering-wight.js.map +1 -1
  63. package/dist/cards/impl/minion/wisp-in-the-shell.js +2 -2
  64. package/dist/cards/impl/minion/wisp-in-the-shell.js.map +1 -1
  65. package/dist/simulation/summon-when-space.js +10 -0
  66. package/dist/simulation/summon-when-space.js.map +1 -1
  67. package/dist/temp-card-ids.d.ts +0 -70
  68. package/dist/temp-card-ids.js.map +1 -1
  69. package/package.json +2 -2
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MutatedLasher = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.MutatedLasher = {
6
- cardIds: ["MutatedLasher", "MutatedLasher_G"],
6
+ cardIds: ["BG31_852", "BG31_852_G"],
7
7
  deathrattleEffect: (minion, input) => {
8
- const mult = minion.cardId === "MutatedLasher_G" ? 2 : 1;
8
+ const mult = minion.cardId === "BG31_852_G" ? 2 : 1;
9
9
  input.boardWithDeadEntityHero.globalInfo.MutatedLasherAttackBuff += 2 * mult;
10
10
  input.boardWithDeadEntityHero.globalInfo.MutatedLasherHealthBuff += 3 * mult;
11
11
  input.boardWithDeadEntity
@@ -16,7 +16,7 @@ exports.MutatedLasher = {
16
16
  });
17
17
  },
18
18
  onOtherSpawnedAura: (minion, input) => {
19
- const mult = minion.cardId === "MutatedLasher_G" ? 2 : 1;
19
+ const mult = minion.cardId === "BG31_852_G" ? 2 : 1;
20
20
  if (input.gameState.cardsData.getTavernLevel(input.spawned.cardId) % 2 === 1) {
21
21
  (0, stats_1.modifyStats)(input.spawned, 2 * mult, 3 * mult, input.board, input.hero, input.gameState);
22
22
  input.gameState.spectator.registerPowerTarget(minion, input.spawned, input.board, input.hero, null);
@@ -1 +1 @@
1
- {"version":3,"file":"mutated-lasher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mutated-lasher.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAI3C,QAAA,aAAa,GAAmD;IAC5E,OAAO,EAAE,oCAAwD;IACjE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7E,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7E,KAAK,CAAC,mBAAmB;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EACV,CAAC,EACD,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,sBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7E,IAAA,mBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACpG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { DeathrattleEffectCard, OnOtherSpawnedAuraCard } from '../../card.interface';\r\n\r\nexport const MutatedLasher: DeathrattleEffectCard & OnOtherSpawnedAuraCard = {\r\n\tcardIds: [TempCardIds.MutatedLasher, TempCardIds.MutatedLasher_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.MutatedLasher_G ? 2 : 1;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.MutatedLasherAttackBuff += 2 * mult;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.MutatedLasherHealthBuff += 3 * mult;\r\n\t\tinput.boardWithDeadEntity\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 1)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\te,\r\n\t\t\t\t\t2 * mult,\r\n\t\t\t\t\t3 * mult,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t},\r\n\tonOtherSpawnedAura: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.MutatedLasher_G ? 2 : 1;\r\n\t\tif (input.gameState.cardsData.getTavernLevel(input.spawned.cardId) % 2 === 1) {\r\n\t\t\tmodifyStats(input.spawned, 2 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, input.spawned, input.board, input.hero, null);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"mutated-lasher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mutated-lasher.ts"],"names":[],"mappings":";;;AAIA,qDAAwD;AAG3C,QAAA,aAAa,GAAmD;IAC5E,OAAO,EAAE,0BAAkE;IAC3E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7E,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,IAAI,CAAC,GAAG,IAAI,CAAC;QAC7E,KAAK,CAAC,mBAAmB;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EACV,CAAC,EACD,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7E,IAAA,mBAAW,EAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACpG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleEffectCard, OnOtherSpawnedAuraCard } from '../../card.interface';\r\n\r\nexport const MutatedLasher: DeathrattleEffectCard & OnOtherSpawnedAuraCard = {\r\n\tcardIds: [CardIds.MutatedLasher_BG31_852, CardIds.MutatedLasher_BG31_852_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MutatedLasher_BG31_852_G ? 2 : 1;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.MutatedLasherAttackBuff += 2 * mult;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.MutatedLasherHealthBuff += 3 * mult;\r\n\t\tinput.boardWithDeadEntity\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 1)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\te,\r\n\t\t\t\t\t2 * mult,\r\n\t\t\t\t\t3 * mult,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t},\r\n\tonOtherSpawnedAura: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MutatedLasher_BG31_852_G ? 2 : 1;\r\n\t\tif (input.gameState.cardsData.getTavernLevel(input.spawned.cardId) % 2 === 1) {\r\n\t\t\tmodifyStats(input.spawned, 2 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, input.spawned, input.board, input.hero, null);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -4,13 +4,13 @@ exports.NeonAgent = void 0;
4
4
  const utils_1 = require("../../../services/utils");
5
5
  const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
6
  exports.NeonAgent = {
7
- cardIds: ["NeonAgent", "NeonAgent_G"],
7
+ cardIds: ["BG31_146", "BG31_146_G"],
8
8
  onAttack: (minion, input) => {
9
9
  if (minion !== input.attacker) {
10
10
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
11
  }
12
12
  const cards = [];
13
- const numberOfCards = minion.cardId === "NeonAgent_G" ? 2 : 1;
13
+ const numberOfCards = minion.cardId === "BG31_146_G" ? 2 : 1;
14
14
  for (let i = 0; i < numberOfCards; i++) {
15
15
  cards.push((0, utils_1.pickRandom)(input.gameState.cardsData.battlecryMinions));
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"neon-agent.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/neon-agent.ts"],"names":[],"mappings":";;;AACA,mDAAqD;AACrD,qEAAmE;AAKtD,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,4BAAgD;IACzD,QAAQ,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QACjH,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,kBAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SACnE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const NeonAgent: OnAttackCard = {\r\n\tcardIds: [TempCardIds.NeonAgent, TempCardIds.NeonAgent_G],\r\n\tonAttack: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === TempCardIds.NeonAgent_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.battlecryMinions));\r\n\t\t}\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cards, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"neon-agent.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/neon-agent.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,qEAAmE;AAItD,QAAA,SAAS,GAAiB;IACtC,OAAO,EAAE,0BAA0D;IACnE,QAAQ,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QACjH,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;YAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SACnE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { OnAttackCard } from '../../card.interface';\r\n\r\nexport const NeonAgent: OnAttackCard = {\r\n\tcardIds: [CardIds.NeonAgent_BG31_146, CardIds.NeonAgent_BG31_146_G],\r\n\tonAttack: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (minion !== input.attacker) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.NeonAgent_BG31_146_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.battlecryMinions));\r\n\t\t}\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cards, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NestSwarmer = void 0;
4
4
  const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
5
  exports.NestSwarmer = {
6
- cardIds: ["NestSwarmer", "NestSwarmer_G"],
6
+ cardIds: ["BG31_807", "BG31_807_G"],
7
7
  deathrattleSpawn: (deadEntity, input) => {
8
- const numberOfSpawns = deadEntity.cardId === "NestSwarmer_G" ? 6 : 3;
9
- return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BeetleToken", numberOfSpawns, input);
8
+ const numberOfSpawns = deadEntity.cardId === "BG31_807_G" ? 6 : 3;
9
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG28_603t", numberOfSpawns, input);
10
10
  },
11
11
  };
12
12
  //# sourceMappingURL=nest-swarmer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nest-swarmer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nest-swarmer.ts"],"names":[],"mappings":";;;AAEA,+EAAiF;AAIpE,QAAA,WAAW,GAAyB;IAChD,OAAO,EAAE,gCAAoD;IAC7D,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,oBAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAA,4CAAuB,iBAA0B,cAAc,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const NestSwarmer: DeathrattleSpawnCard = {\r\n\tcardIds: [TempCardIds.NestSwarmer, TempCardIds.NestSwarmer_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === TempCardIds.NestSwarmer_G ? 6 : 3;\r\n\t\treturn simplifiedSpawnEntities(TempCardIds.BeetleToken, numberOfSpawns, input);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"nest-swarmer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nest-swarmer.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,WAAW,GAAyB;IAChD,OAAO,EAAE,0BAA8D;IACvE,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,IAAA,4CAAuB,eAA8C,cAAc,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const NestSwarmer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.NestSwarmer_BG31_807, CardIds.NestSwarmer_BG31_807_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === CardIds.NestSwarmer_BG31_807_G ? 6 : 3;\r\n\t\treturn simplifiedSpawnEntities(CardIds.BoonOfBeetles_BeetleToken_BG28_603t, numberOfSpawns, input);\r\n\t},\r\n};\r\n"]}
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RecklessCliffdiver = void 0;
4
4
  exports.RecklessCliffdiver = {
5
- cardIds: ["RecklessCliffdiver", "RecklessCliffdiver_G"],
5
+ cardIds: ["BG31_142", "BG31_142_G"],
6
6
  onBattlecryTriggered: (minion, input) => {
7
- const mult = minion.cardId === "RecklessCliffdiver_G" ? 2 : 1;
7
+ const mult = minion.cardId === "BG31_142_G" ? 2 : 1;
8
8
  minion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;
9
9
  },
10
10
  onSpawned: (minion, input) => {
11
- const mult = minion.cardId === "RecklessCliffdiver_G" ? 2 : 1;
11
+ const mult = minion.cardId === "BG31_142_G" ? 2 : 1;
12
12
  minion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;
13
13
  },
14
14
  onDespawned: (minion, input) => {
15
- const mult = minion.cardId === "RecklessCliffdiver_G" ? 2 : 1;
15
+ const mult = minion.cardId === "BG31_142_G" ? 2 : 1;
16
16
  minion.attack = Math.max(0, minion.attack - 2 * mult);
17
17
  },
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reckless-cliffdiver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/reckless-cliffdiver.ts"],"names":[],"mappings":";;;AAMa,QAAA,kBAAkB,GAA+D;IAC7F,OAAO,EAAE,8CAAkE;IAC3E,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnBattlecryTriggeredInput } from '../../../simulation/battlecries';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { OnBattlecryTriggeredCard, OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const RecklessCliffdiver: OnSpawnedCard & OnDespawnedCard & OnBattlecryTriggeredCard = {\r\n\tcardIds: [TempCardIds.RecklessCliffdiver, TempCardIds.RecklessCliffdiver_G],\r\n\tonBattlecryTriggered: (minion: BoardEntity, input: OnBattlecryTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.RecklessCliffdiver_G ? 2 : 1;\r\n\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t},\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.RecklessCliffdiver_G ? 2 : 1;\r\n\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.RecklessCliffdiver_G ? 2 : 1;\r\n\t\tminion.attack = Math.max(0, minion.attack - 2 * mult);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"reckless-cliffdiver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/reckless-cliffdiver.ts"],"names":[],"mappings":";;;AAMa,QAAA,kBAAkB,GAA+D;IAC7F,OAAO,EAAE,0BAA4E;IACrF,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnBattlecryTriggeredInput } from '../../../simulation/battlecries';\r\nimport { OnBattlecryTriggeredCard, OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const RecklessCliffdiver: OnSpawnedCard & OnDespawnedCard & OnBattlecryTriggeredCard = {\r\n\tcardIds: [CardIds.RecklessCliffdiver_BG31_142, CardIds.RecklessCliffdiver_BG31_142_G],\r\n\tonBattlecryTriggered: (minion: BoardEntity, input: OnBattlecryTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t},\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tminion.attack += mult * input.hero.globalInfo.BattlecriesTriggeredThisGame;\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RecklessCliffdiver_BG31_142_G ? 2 : 1;\r\n\t\tminion.attack = Math.max(0, minion.attack - 2 * mult);\r\n\t},\r\n};\r\n"]}
@@ -4,18 +4,18 @@ exports.RunedProgenitor = void 0;
4
4
  const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
5
  const stats_1 = require("../../../simulation/stats");
6
6
  exports.RunedProgenitor = {
7
- cardIds: ["RunedProgenitor", "RunedProgenitor_G"],
7
+ cardIds: ["BG31_808", "BG31_808_G"],
8
8
  deathrattleSpawn: (deadEntity, input) => {
9
- const numberOfSpawns = deadEntity.cardId === "RunedProgenitor_G" ? 2 : 1;
10
- return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BeetleToken", numberOfSpawns, input);
9
+ const numberOfSpawns = deadEntity.cardId === "BG31_808_G" ? 2 : 1;
10
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG28_603t", numberOfSpawns, input);
11
11
  },
12
12
  baseAvengeValue: (cardId) => 4,
13
13
  avenge: (minion, input) => {
14
- const mult = minion.cardId === "RunedProgenitor_G" ? 2 : 1;
14
+ const mult = minion.cardId === "BG31_808_G" ? 2 : 1;
15
15
  input.hero.globalInfo.BeetleAttackBuff = input.hero.globalInfo.BeetleAttackBuff + 2 * mult;
16
16
  input.hero.globalInfo.BeetleHealthBuff = input.hero.globalInfo.BeetleHealthBuff + 2 * mult;
17
17
  input.board
18
- .filter((e) => ["BeetleToken", "BeetleToken_G"].includes(e.cardId))
18
+ .filter((e) => ["BG28_603t", "BG28_603t_G"].includes(e.cardId))
19
19
  .forEach((e) => {
20
20
  (0, stats_1.modifyStats)(e, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);
21
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runed-progenitor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/runed-progenitor.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AACjF,qDAAwD;AAI3C,QAAA,eAAe,GAAsC;IACjE,OAAO,EAAE,wCAA4D;IACrE,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,wBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,IAAA,4CAAuB,iBAA0B,cAAc,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAoD,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;aACrG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { AvengeCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RunedProgenitor: DeathrattleSpawnCard & AvengeCard = {\r\n\tcardIds: [TempCardIds.RunedProgenitor, TempCardIds.RunedProgenitor_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === TempCardIds.RunedProgenitor_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(TempCardIds.BeetleToken, numberOfSpawns, input);\r\n\t},\r\n\tbaseAvengeValue: (cardId: string) => 4,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.RunedProgenitor_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.BeetleAttackBuff = input.hero.globalInfo.BeetleAttackBuff + 2 * mult;\r\n\t\tinput.hero.globalInfo.BeetleHealthBuff = input.hero.globalInfo.BeetleHealthBuff + 2 * mult;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => [TempCardIds.BeetleToken, TempCardIds.BeetleToken_G].includes(e.cardId as TempCardIds))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"runed-progenitor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/runed-progenitor.ts"],"names":[],"mappings":";;;AAIA,+EAAiF;AACjF,qDAAwD;AAG3C,QAAA,eAAe,GAAsC;IACjE,OAAO,EAAE,0BAAsE;IAC/E,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,IAAA,4CAAuB,eAA8C,cAAc,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;IACD,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3F,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,4BAAyE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CACvG;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const RunedProgenitor: DeathrattleSpawnCard & AvengeCard = {\r\n\tcardIds: [CardIds.RunedProgenitor_BG31_808, CardIds.RunedProgenitor_BG31_808_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === CardIds.RunedProgenitor_BG31_808_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(CardIds.BoonOfBeetles_BeetleToken_BG28_603t, numberOfSpawns, input);\r\n\t},\r\n\tbaseAvengeValue: (cardId: string) => 4,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RunedProgenitor_BG31_808_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.BeetleAttackBuff = input.hero.globalInfo.BeetleAttackBuff + 2 * mult;\r\n\t\tinput.hero.globalInfo.BeetleHealthBuff = input.hero.globalInfo.BeetleHealthBuff + 2 * mult;\r\n\t\tinput.board\r\n\t\t\t.filter((e) =>\r\n\t\t\t\t[CardIds.BoonOfBeetles_BeetleToken_BG28_603t, CardIds.Beetle_BG28_603t_G].includes(e.cardId as CardIds),\r\n\t\t\t)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 2 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SaltyHog = void 0;
4
4
  const utils_1 = require("../../../utils");
5
5
  exports.SaltyHog = {
6
- cardIds: ["SaltyHog", "SaltyHog_G"],
6
+ cardIds: ["BG31_332", "BG31_332_G"],
7
7
  defaultCharges: (cardId) => 3,
8
8
  onCardAddedToHand: (entity, input) => {
9
9
  entity.abiityChargesLeft = entity.abiityChargesLeft - 1;
10
10
  if (entity.abiityChargesLeft <= 0) {
11
- const mult = entity.cardId === "SaltyHog_G" ? 2 : 1;
11
+ const mult = entity.cardId === "BG31_332_G" ? 2 : 1;
12
12
  (0, utils_1.addStatsToBoard)(entity, input.board.filter((e) => e.entityId !== entity.entityId), input.hero, 2 * mult, 2 * mult, input.gameState);
13
13
  entity.abiityChargesLeft = exports.SaltyHog.defaultCharges(entity.cardId);
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"salty-hog.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/salty-hog.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,QAAQ,GAA+C;IACnE,OAAO,EAAE,0BAA8C;IACvD,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,EACzD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,iBAAiB,GAAG,gBAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAClE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DefaultChargesCard, OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const SaltyHog: OnCardAddedToHandCard & DefaultChargesCard = {\r\n\tcardIds: [TempCardIds.SaltyHog, TempCardIds.SaltyHog_G],\r\n\tdefaultCharges: (cardId: string) => 3,\r\n\tonCardAddedToHand: (entity: BoardEntity, input: OnCardAddedToHandInput) => {\r\n\t\tentity.abiityChargesLeft = entity.abiityChargesLeft - 1;\r\n\t\tif (entity.abiityChargesLeft <= 0) {\r\n\t\t\tconst mult = entity.cardId === TempCardIds.SaltyHog_G ? 2 : 1;\r\n\t\t\taddStatsToBoard(\r\n\t\t\t\tentity,\r\n\t\t\t\tinput.board.filter((e) => e.entityId !== entity.entityId),\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t2 * mult,\r\n\t\t\t\t2 * mult,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tentity.abiityChargesLeft = SaltyHog.defaultCharges(entity.cardId);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"salty-hog.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/salty-hog.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,QAAQ,GAA+C;IACnE,OAAO,EAAE,0BAAwD;IACjE,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACrC,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,EACzD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,iBAAiB,GAAG,gBAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAClE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DefaultChargesCard, OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const SaltyHog: OnCardAddedToHandCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.SaltyHog_BG31_332, CardIds.SaltyHog_BG31_332_G],\r\n\tdefaultCharges: (cardId: string) => 3,\r\n\tonCardAddedToHand: (entity: BoardEntity, input: OnCardAddedToHandInput) => {\r\n\t\tentity.abiityChargesLeft = entity.abiityChargesLeft - 1;\r\n\t\tif (entity.abiityChargesLeft <= 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.SaltyHog_BG31_332_G ? 2 : 1;\r\n\t\t\taddStatsToBoard(\r\n\t\t\t\tentity,\r\n\t\t\t\tinput.board.filter((e) => e.entityId !== entity.entityId),\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t2 * mult,\r\n\t\t\t\t2 * mult,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tentity.abiityChargesLeft = SaltyHog.defaultCharges(entity.cardId);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ShowyCyclist = void 0;
4
4
  const utils_1 = require("../../../utils");
5
5
  exports.ShowyCyclist = {
6
- cardIds: ["ShowyCyclist", "ShowyCyclist_G"],
6
+ cardIds: ["BG31_925", "BG31_925_G"],
7
7
  deathrattleEffect: (minion, input) => {
8
8
  const baseBuff = minion.scriptDataNum1;
9
- const mult = minion.cardId === "ShowyCyclist_G" ? 2 : 1;
9
+ const mult = minion.cardId === "BG31_925_G" ? 2 : 1;
10
10
  const buff = baseBuff * mult;
11
11
  (0, utils_1.addStatsToBoard)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, 1 * buff, 1 * buff, input.gameState);
12
12
  },
@@ -1 +1 @@
1
- {"version":3,"file":"showy-cyclist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/showy-cyclist.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,kCAAsD;IAC/D,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,qBAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC7B,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nexport const ShowyCyclist: DeathrattleEffectCard = {\r\n\tcardIds: [TempCardIds.ShowyCyclist, TempCardIds.ShowyCyclist_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst baseBuff = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === TempCardIds.ShowyCyclist_G ? 2 : 1;\r\n\t\tconst buff = baseBuff * mult;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t1 * buff,\r\n\t\t\t1 * buff,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"showy-cyclist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/showy-cyclist.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;QAC7B,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nexport const ShowyCyclist: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.ShowyCyclist_BG31_925, CardIds.ShowyCyclist_BG31_925_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst baseBuff = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === CardIds.ShowyCyclist_BG31_925_G ? 2 : 1;\r\n\t\tconst buff = baseBuff * mult;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t1 * buff,\r\n\t\t\t1 * buff,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SilverHandedRecruit = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.SilverHandedRecruit = {
6
- cardIds: ["SilverHandedRecruit", "SilverHandedRecruit_G"],
6
+ cardIds: ["BG31_853", "BG31_853_G"],
7
7
  battlecry: (minion, input) => {
8
- const mult = minion.cardId === "SilverHandedRecruit_G" ? 2 : 1;
8
+ const mult = minion.cardId === "BG31_853_G" ? 2 : 1;
9
9
  input.board
10
10
  .filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 0)
11
11
  .forEach((e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"silver-handed-recruit.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silver-handed-recruit.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAI3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,gDAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7E,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SilverHandedRecruit: BattlecryCard = {\r\n\tcardIds: [TempCardIds.SilverHandedRecruit, TempCardIds.SilverHandedRecruit_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.SilverHandedRecruit_G ? 2 : 1;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 0)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, e, input.board, input.hero, null);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"silver-handed-recruit.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silver-handed-recruit.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,0BAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,KAAK,CAAC,KAAK;aACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAC3E,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7E,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SilverHandedRecruit: BattlecryCard = {\r\n\tcardIds: [CardIds.SilverHandedRecruit_BG31_853, CardIds.SilverHandedRecruit_BG31_853_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SilverHandedRecruit_BG31_853_G ? 2 : 1;\r\n\t\tinput.board\r\n\t\t\t.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) % 2 === 0)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(e, 4 * mult, 4 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, e, input.board, input.hero, null);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
@@ -5,7 +5,7 @@ const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const stats_1 = require("../../../simulation/stats");
6
6
  const utils_1 = require("../../../utils");
7
7
  exports.Spacefarer = {
8
- cardIds: ["Spacefarer", "Spacefarer_G"],
8
+ cardIds: ["BG31_820", "BG31_820_G"],
9
9
  onStatsChanged: (entity, input) => {
10
10
  if (input.target === entity) {
11
11
  return;
@@ -14,7 +14,7 @@ exports.Spacefarer = {
14
14
  return;
15
15
  }
16
16
  if (input.attackAmount > 0) {
17
- const mult = entity.cardId === "Spacefarer_G" ? 2 : 1;
17
+ const mult = entity.cardId === "BG31_820_G" ? 2 : 1;
18
18
  (0, stats_1.modifyStats)(entity, 0, 3 * mult, input.board, input.hero, input.gameState);
19
19
  }
20
20
  },
@@ -1 +1 @@
1
- {"version":3,"file":"spacefarer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spacefarer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAA6E;AAE7E,0CAAiD;AAGpC,QAAA,UAAU,GAAuB;IAC7C,OAAO,EAAE,8BAAkD;IAC3D,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5B,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACtF,OAAO;SACP;QACD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,mBAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3E;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats, OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnStatsChangedCard } from '../../card.interface';\r\n\r\nexport const Spacefarer: OnStatsChangedCard = {\r\n\tcardIds: [TempCardIds.Spacefarer, TempCardIds.Spacefarer_G],\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === entity) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(input.target, input.hero, Race.PIRATE, input.gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (input.attackAmount > 0) {\r\n\t\t\tconst mult = entity.cardId === TempCardIds.Spacefarer_G ? 2 : 1;\r\n\t\t\tmodifyStats(entity, 0, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"spacefarer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spacefarer.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,qDAA6E;AAC7E,0CAAiD;AAGpC,QAAA,UAAU,GAAuB;IAC7C,OAAO,EAAE,0BAA4D;IACrE,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC5B,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACtF,OAAO;SACP;QACD,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3E;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats, OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnStatsChangedCard } from '../../card.interface';\r\n\r\nexport const Spacefarer: OnStatsChangedCard = {\r\n\tcardIds: [CardIds.Spacefarer_BG31_820, CardIds.Spacefarer_BG31_820_G],\r\n\tonStatsChanged: (entity: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === entity) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(input.target, input.hero, Race.PIRATE, input.gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (input.attackAmount > 0) {\r\n\t\t\tconst mult = entity.cardId === CardIds.Spacefarer_BG31_820_G ? 2 : 1;\r\n\t\t\tmodifyStats(entity, 0, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -4,19 +4,19 @@ exports.TurquoiseSkitterer = void 0;
4
4
  const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
5
5
  const stats_1 = require("../../../simulation/stats");
6
6
  exports.TurquoiseSkitterer = {
7
- cardIds: ["TurquoiseSkitterer", "TurquoiseSkitterer_G"],
7
+ cardIds: ["BG31_809", "BG31_809_G"],
8
8
  deathrattleSpawn: (deadEntity, input) => {
9
- const numberOfSpawns = deadEntity.cardId === "TurquoiseSkitterer_G" ? 2 : 1;
10
- return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BeetleToken", numberOfSpawns, input);
9
+ const numberOfSpawns = deadEntity.cardId === "BG31_809_G" ? 2 : 1;
10
+ return (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG28_603t", numberOfSpawns, input);
11
11
  },
12
12
  deathrattleEffect: (minion, input) => {
13
- const mult = minion.cardId === "TurquoiseSkitterer_G" ? 2 : 1;
13
+ const mult = minion.cardId === "BG31_809_G" ? 2 : 1;
14
14
  input.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff =
15
15
  input.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff + 1 * mult;
16
16
  input.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff =
17
17
  input.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff + 2 * mult;
18
18
  input.boardWithDeadEntity
19
- .filter((e) => ["BeetleToken", "BeetleToken_G"].includes(e.cardId))
19
+ .filter((e) => ["BG28_603t", "BG28_603t_G"].includes(e.cardId))
20
20
  .forEach((e) => {
21
21
  (0, stats_1.modifyStats)(e, 1 * mult, 2 * mult, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
22
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"turquoise-skitterer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/turquoise-skitterer.ts"],"names":[],"mappings":";;;AAEA,+EAAiF;AACjF,qDAAwD;AAI3C,QAAA,kBAAkB,GAAiD;IAC/E,OAAO,EAAE,8CAAkE;IAC3E,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,IAAA,4CAAuB,iBAA0B,cAAc,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB;YACxD,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QACtE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB;YACxD,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QACtE,KAAK,CAAC,mBAAmB;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gCAAoD,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAqB,CAAC,CAAC;aACrG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EACV,CAAC,EACD,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { DeathrattleEffectCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TurquoiseSkitterer: DeathrattleSpawnCard & DeathrattleEffectCard = {\r\n\tcardIds: [TempCardIds.TurquoiseSkitterer, TempCardIds.TurquoiseSkitterer_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === TempCardIds.TurquoiseSkitterer_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(TempCardIds.BeetleToken, numberOfSpawns, input);\r\n\t},\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.TurquoiseSkitterer_G ? 2 : 1;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff =\r\n\t\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff + 1 * mult;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff =\r\n\t\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff + 2 * mult;\r\n\t\tinput.boardWithDeadEntity\r\n\t\t\t.filter((e) => [TempCardIds.BeetleToken, TempCardIds.BeetleToken_G].includes(e.cardId as TempCardIds))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\te,\r\n\t\t\t\t\t1 * mult,\r\n\t\t\t\t\t2 * mult,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"turquoise-skitterer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/turquoise-skitterer.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AACjF,qDAAwD;AAG3C,QAAA,kBAAkB,GAAiD;IAC/E,OAAO,EAAE,0BAA4E;IACrF,gBAAgB,EAAE,CAAC,UAAuB,EAAE,KAAgC,EAA0B,EAAE;QACvG,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,OAAO,IAAA,4CAAuB,eAA8C,cAAc,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;IACD,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB;YACxD,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QACtE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB;YACxD,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;QACtE,KAAK,CAAC,mBAAmB;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,4BAAyE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CACvG;aACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,IAAA,mBAAW,EACV,CAAC,EACD,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleEffectCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TurquoiseSkitterer: DeathrattleSpawnCard & DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TurquoiseSkitterer_BG31_809, CardIds.TurquoiseSkitterer_BG31_809_G],\r\n\tdeathrattleSpawn: (deadEntity: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst numberOfSpawns = deadEntity.cardId === CardIds.TurquoiseSkitterer_BG31_809_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(CardIds.BoonOfBeetles_BeetleToken_BG28_603t, numberOfSpawns, input);\r\n\t},\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TurquoiseSkitterer_BG31_809_G ? 2 : 1;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff =\r\n\t\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleAttackBuff + 1 * mult;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff =\r\n\t\t\tinput.boardWithDeadEntityHero.globalInfo.BeetleHealthBuff + 2 * mult;\r\n\t\tinput.boardWithDeadEntity\r\n\t\t\t.filter((e) =>\r\n\t\t\t\t[CardIds.BoonOfBeetles_BeetleToken_BG28_603t, CardIds.Beetle_BG28_603t_G].includes(e.cardId as CardIds),\r\n\t\t\t)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\te,\r\n\t\t\t\t\t1 * mult,\r\n\t\t\t\t\t2 * mult,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t},\r\n};\r\n"]}
@@ -6,10 +6,10 @@ const utils_1 = require("../../../services/utils");
6
6
  const stats_1 = require("../../../simulation/stats");
7
7
  const utils_2 = require("../../../utils");
8
8
  exports.TwilightPrimordium = {
9
- cardIds: ["TwilightPrimordium", "TwilightPrimordium_G"],
9
+ cardIds: ["BG31_813", "BG31_813_G"],
10
10
  battlecry: (minion, input) => {
11
11
  const currentBuffValue = minion.scriptDataNum1;
12
- const mult = minion.cardId === "TwilightPrimordium_G" ? 2 : 1;
12
+ const mult = minion.cardId === "BG31_813_G" ? 2 : 1;
13
13
  const candidates = [
14
14
  ...input.board.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.ELEMENTAL, input.gameState.allCards)),
15
15
  ...input.otherBoard.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.ELEMENTAL, input.gameState.allCards)),
@@ -1 +1 @@
1
- {"version":3,"file":"twilight-primordium.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-primordium.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AAErD,qDAAwD;AAExD,0CAAiD;AAGpC,QAAA,kBAAkB,GAAkB;IAChD,OAAO,EAAE,8CAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,2BAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG;YAClB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC3G,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const TwilightPrimordium: BattlecryCard = {\r\n\tcardIds: [TempCardIds.TwilightPrimordium, TempCardIds.TwilightPrimordium_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst currentBuffValue = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === TempCardIds.TwilightPrimordium_G ? 2 : 1;\r\n\t\tconst candidates = [\r\n\t\t\t...input.board.filter((e) => hasCorrectTribe(e, input.hero, Race.ELEMENTAL, input.gameState.allCards)),\r\n\t\t\t...input.otherBoard.filter((e) => hasCorrectTribe(e, input.hero, Race.ELEMENTAL, input.gameState.allCards)),\r\n\t\t];\r\n\t\tconst target = pickRandom(candidates);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"twilight-primordium.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-primordium.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,kBAAkB,GAAkB;IAChD,OAAO,EAAE,0BAA4E;IACrF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG;YAClB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACtG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC3G,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const TwilightPrimordium: BattlecryCard = {\r\n\tcardIds: [CardIds.TwilightPrimordium_BG31_813, CardIds.TwilightPrimordium_BG31_813_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst currentBuffValue = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === CardIds.TwilightPrimordium_BG31_813_G ? 2 : 1;\r\n\t\tconst candidates = [\r\n\t\t\t...input.board.filter((e) => hasCorrectTribe(e, input.hero, Race.ELEMENTAL, input.gameState.allCards)),\r\n\t\t\t...input.otherBoard.filter((e) => hasCorrectTribe(e, input.hero, Race.ELEMENTAL, input.gameState.allCards)),\r\n\t\t];\r\n\t\tconst target = pickRandom(candidates);\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UltravioletAscendant = void 0;
4
4
  const utils_1 = require("../../../utils");
5
5
  exports.UltravioletAscendant = {
6
- cardIds: ["UltravioletAscendant", "UltravioletAscendant_G"],
6
+ cardIds: ["BG31_810", "BG31_810_G"],
7
7
  startOfCombat: (minion, input) => {
8
8
  const currentBuffValue = minion.scriptDataNum1;
9
- const mult = minion.cardId === "UltravioletAscendant_G" ? 2 : 1;
9
+ const mult = minion.cardId === "BG31_810_G" ? 2 : 1;
10
10
  (0, utils_1.addStatsToBoard)(minion, input.playerBoard, input.playerEntity, 2 * mult * currentBuffValue, 1 * mult * currentBuffValue, input.gameState);
11
11
  return true;
12
12
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ultraviolet-ascendant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ultraviolet-ascendant.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,oBAAoB,GAAsB;IACtD,OAAO,EAAE,kDAAsE;IAC/E,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,6BAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const UltravioletAscendant: StartOfCombatCard = {\r\n\tcardIds: [TempCardIds.UltravioletAscendant, TempCardIds.UltravioletAscendant_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst currentBuffValue = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === TempCardIds.UltravioletAscendant_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t1 * mult * currentBuffValue,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"ultraviolet-ascendant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ultraviolet-ascendant.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,oBAAoB,GAAsB;IACtD,OAAO,EAAE,0BAAgF;IACzF,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,CAAC,GAAG,IAAI,GAAG,gBAAgB,EAC3B,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const UltravioletAscendant: StartOfCombatCard = {\r\n\tcardIds: [CardIds.UltravioletAscendant_BG31_810, CardIds.UltravioletAscendant_BG31_810_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst currentBuffValue = minion.scriptDataNum1;\r\n\t\tconst mult = minion.cardId === CardIds.UltravioletAscendant_BG31_810_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\t2 * mult * currentBuffValue,\r\n\t\t\t1 * mult * currentBuffValue,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WanderingWight = void 0;
4
4
  const stats_1 = require("../../../simulation/stats");
5
5
  exports.WanderingWight = {
6
- cardIds: ["", ""],
6
+ cardIds: ["BG31_126", "BG31_126_G"],
7
7
  afterOtherSpawned: (minion, input) => {
8
- const mult = minion.cardId === "" ? 1 : 2;
8
+ const mult = minion.cardId === "BG31_126" ? 1 : 2;
9
9
  (0, stats_1.modifyStats)(minion, 0, minion.attack * mult, input.board, input.hero, input.gameState);
10
10
  },
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"wandering-wight.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wandering-wight.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAI3C,QAAA,cAAc,GAA0B;IACpD,OAAO,EAAE,QAA0D;IACnE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,OAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const WanderingWight: AfterOtherSpawnedCard = {\r\n\tcardIds: [TempCardIds.WanderingWight, TempCardIds.WanderingWight_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.WanderingWight ? 1 : 2;\r\n\t\tmodifyStats(minion, 0, minion.attack * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wandering-wight.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wandering-wight.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,cAAc,GAA0B;IACpD,OAAO,EAAE,0BAAoE;IAC7E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { OnOtherSpawnAuraInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const WanderingWight: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.WanderingWight_BG31_126, CardIds.WanderingWight_BG31_126_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnAuraInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.WanderingWight_BG31_126 ? 1 : 2;\r\n\t\tmodifyStats(minion, 0, minion.attack * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -4,12 +4,12 @@ exports.WispInTheShell = void 0;
4
4
  const utils_1 = require("../../../services/utils");
5
5
  const stats_1 = require("../../../simulation/stats");
6
6
  exports.WispInTheShell = {
7
- cardIds: ["", ""],
7
+ cardIds: ["BG31_841", "BG31_841_G"],
8
8
  battlecry: (minion, input) => {
9
9
  var _a;
10
10
  const target = (0, utils_1.pickRandomAlive)(input.board);
11
11
  if (!!target) {
12
- const mult = minion.cardId === "" ? 1 : 2;
12
+ const mult = minion.cardId === "BG31_841" ? 1 : 2;
13
13
  const baseValue = 1 + ((_a = input.hero.globalInfo.FriendlyMinionsDeadLastCombat) !== null && _a !== void 0 ? _a : 0);
14
14
  const buff = 2 * mult * baseValue;
15
15
  (0, stats_1.modifyStats)(target, buff, buff, input.board, input.hero, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"wisp-in-the-shell.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wisp-in-the-shell.ts"],"names":[],"mappings":";;;AACA,mDAA0D;AAE1D,qDAAwD;AAI3C,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,QAA0D;IACnE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,OAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;YAClC,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1E;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const WispInTheShell: BattlecryCard = {\r\n\tcardIds: [TempCardIds.WispInTheShell, TempCardIds.WispInTheShell_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst target = pickRandomAlive(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tconst mult = minion.cardId === TempCardIds.WispInTheShell ? 1 : 2;\r\n\t\t\tconst baseValue = 1 + (input.hero.globalInfo.FriendlyMinionsDeadLastCombat ?? 0);\r\n\t\t\tconst buff = 2 * mult * baseValue;\r\n\t\t\tmodifyStats(target, buff, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"wisp-in-the-shell.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/wisp-in-the-shell.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,cAAc,GAAkB;IAC5C,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC,CAAC;YACjF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;YAClC,IAAA,mBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1E;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const WispInTheShell: BattlecryCard = {\r\n\tcardIds: [CardIds.WispInTheShell_BG31_841, CardIds.WispInTheShell_BG31_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst target = pickRandomAlive(input.board);\r\n\t\tif (!!target) {\r\n\t\t\tconst mult = minion.cardId === CardIds.WispInTheShell_BG31_841 ? 1 : 2;\r\n\t\t\tconst baseValue = 1 + (input.hero.globalInfo.FriendlyMinionsDeadLastCombat ?? 0);\r\n\t\t\tconst buff = 2 * mult * baseValue;\r\n\t\t\tmodifyStats(target, buff, buff, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -115,6 +115,16 @@ const handleRapidReanimationForPlayer = (playerBoard, playerEntity, opponentBoar
115
115
  const hasSummoned = handleSummon(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState, playerEntity.rapidReanimationMinion.cardId, indexFromRight, playerEntity.rapidReanimationMinion);
116
116
  if (hasSummoned) {
117
117
  playerEntity.rapidReanimationMinion = null;
118
+ hasSummoned.forEach((entity) => {
119
+ switch (entity.cardId) {
120
+ case "BG_TTN_401":
121
+ case "BG_TTN_401_G":
122
+ const overstatMult = entity.cardId === "BG_TTN_401" ? 1 : 2;
123
+ entity.attack = Math.max(1, entity.attack + 2 * overstatMult);
124
+ entity.health = Math.max(0, entity.health + overstatMult);
125
+ break;
126
+ }
127
+ });
118
128
  }
119
129
  };
120
130
  const handleSummon = (playerBoard, playerEntity, opponentBoard, opponentEntity, gameState, cardId, indexFromRight, minion = null) => {
@@ -1 +1 @@
1
- {"version":3,"file":"summon-when-space.js","sourceRoot":"","sources":["../../src/simulation/summon-when-space.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { buildSingleBoardEntity, copyEntity, hasCorrectTribe } from '../utils';\r\nimport { removeAurasFromSelf } from './add-minion-to-board';\r\nimport { spawnEntities } from './deathrattle-spawns';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { performEntitySpawns } from './spawns';\r\n\r\nexport const handleSummonsWhenSpace = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\thandleSummonsWhenSpaceForPlayer(playerEntity, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\thandleSummonsWhenSpaceForPlayer(\r\n\t\topponentEntity,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\tgameState,\r\n\t);\r\n};\r\n\r\n// TODO: Twin Sky Lanterns wait for 2 spaces\r\nconst handleSummonsWhenSpaceForPlayer = (\r\n\ttargetEntity: BgsPlayerEntity,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tif (targetEntity.rapidReanimationMinion) {\r\n\t\thandleRapidReanimationForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.questRewards?.includes(CardIds.StableAmalgamation_BG28_Reward_518)) {\r\n\t\thandleStableAmalgamationForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.secrets?.some((s) => s.cardId === CardIds.BoonOfBeetles_BG28_603)) {\r\n\t\thandleBoonOfBeetlesForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.heroPowerId === CardIds.Ozumat_Tentacular) {\r\n\t\thandleOzumatForPlayer(\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\ttargetEntity.friendly,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t}\r\n\ttargetEntity.trinkets\r\n\t\t.filter(\r\n\t\t\t(t) =>\r\n\t\t\t\tt.cardId === CardIds.TwinSkyLanterns_BG30_MagicItem_822 ||\r\n\t\t\t\tt.cardId === CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2,\r\n\t\t)\r\n\t\t.forEach((t) => {\r\n\t\t\thandleTwinSkyLanternsForPlayer(t, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t\t});\r\n\ttargetEntity.trinkets\r\n\t\t.filter((t) => t.cardId === CardIds.BoomController_BG30_MagicItem_440)\r\n\t\t.forEach((t) => {\r\n\t\t\thandleBoomControllerForPlayer(t, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t\t});\r\n};\r\n\r\nconst handleBoomControllerForPlayer = (\r\n\ttrinket: BoardTrinket,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (playerBoard.length < 7 && trinket.scriptDataNum1 > 0) {\r\n\t\tconst candidate = gameState.sharedState.deaths\r\n\t\t\t.filter((d) => d.friendly === playerEntity.friendly)\r\n\t\t\t.filter((d) => hasCorrectTribe(d, playerEntity, Race.MECH, gameState.allCards))[0];\r\n\t\tif (!!candidate) {\r\n\t\t\tconst spawn = copyEntity(candidate);\r\n\t\t\tremoveAurasFromSelf(spawn, playerBoard, playerEntity, gameState);\r\n\t\t\tconst initialIndexFromLeft = candidate.indexFromLeftAtTimeOfDeath;\r\n\t\t\tconst indexFromRight =\r\n\t\t\t\tinitialIndexFromLeft == null\r\n\t\t\t\t\t? 0\r\n\t\t\t\t\t: Math.min(playerBoard.length, Math.max(0, playerBoard.length - initialIndexFromLeft));\r\n\t\t\tconst target = spawnEntities(\r\n\t\t\t\tspawn.cardId,\r\n\t\t\t\t1,\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState.allCards,\r\n\t\t\t\tgameState.cardsData,\r\n\t\t\t\tgameState.sharedState,\r\n\t\t\t\tgameState.spectator,\r\n\t\t\t\tplayerEntity.friendly,\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\tfalse,\r\n\t\t\t\tspawn,\r\n\t\t\t);\r\n\t\t\t// FIXME: here it should try to match the position at which the original minions died\r\n\t\t\tconst actualSpawns = performEntitySpawns(\r\n\t\t\t\ttarget,\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\tindexFromRight,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t);\r\n\t\t\tactualSpawns.forEach((t) =>\r\n\t\t\t\tgameState.spectator.registerPowerTarget(playerEntity, t, playerBoard, playerEntity, opponentEntity),\r\n\t\t\t);\r\n\t\t\ttrinket.scriptDataNum1 = 0;\r\n\t\t\t// It summons an exact copy\r\n\t\t\t// actualSpawns.forEach((entity) => {\r\n\t\t\t// \tswitch (entity.cardId) {\r\n\t\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401:\r\n\t\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\r\n\t\t\t// \t\t\tconst overstatMult = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401 ? 1 : 2;\r\n\t\t\t// \t\t\tentity.attack = Math.max(1, entity.attack - 2 * overstatMult);\r\n\t\t\t// \t\t\tentity.health = Math.max(0, entity.health - overstatMult);\r\n\t\t\t// \t\t\tbreak;\r\n\t\t\t// \t}\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst handleTwinSkyLanternsForPlayer = (\r\n\ttrinket: BoardTrinket,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tconst spawnNumber = trinket.scriptDataNum1;\r\n\tconst canTrigger = spawnNumber >= 1;\r\n\tif (playerBoard.length <= 7 - spawnNumber && trinket.rememberedMinion && canTrigger) {\r\n\t\ttrinket.scriptDataNum1 = 0;\r\n\t\tconst spawn = copyEntity(trinket.rememberedMinion);\r\n\t\tremoveAurasFromSelf(spawn, playerBoard, playerEntity, gameState);\r\n\t\tconst target = spawnEntities(\r\n\t\t\tspawn.cardId,\r\n\t\t\tspawnNumber,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState.allCards,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tgameState.spectator,\r\n\t\t\tplayerEntity.friendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\tspawn,\r\n\t\t);\r\n\t\tperformEntitySpawns(\r\n\t\t\ttarget,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\tplayerEntity,\r\n\t\t\t0,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t\ttarget.forEach((t) =>\r\n\t\t\tgameState.spectator.registerPowerTarget(playerEntity, t, playerBoard, playerEntity, opponentEntity),\r\n\t\t);\r\n\t}\r\n};\r\n\r\nconst handleOzumatForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tfriendly: boolean,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (playerBoard.length < 7 && playerEntity.heroPowerActivated === false) {\r\n\t\tconst tentacularSize = +playerEntity.heroPowerInfo;\r\n\t\tconst tentacular = spawnEntities(\r\n\t\t\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\t\t\t1,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState.allCards,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tgameState.spectator,\r\n\t\t\tfriendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t);\r\n\t\ttentacular[0].attack = tentacularSize;\r\n\t\ttentacular[0].health = tentacularSize;\r\n\t\tconst indexFromRight = 0;\r\n\t\tperformEntitySpawns(\r\n\t\t\ttentacular,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\tplayerEntity,\r\n\t\t\tindexFromRight,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t\tgameState.spectator.registerPowerTarget(playerEntity, tentacular[0], playerBoard, playerEntity, opponentEntity);\r\n\t\tplayerEntity.heroPowerActivated = true;\r\n\t}\r\n};\r\n\r\nconst handleBoonOfBeetlesForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst secretEntity = playerEntity.secrets.find((entity) => entity.cardId === CardIds.BoonOfBeetles_BG28_603);\r\n\tif (secretEntity && secretEntity.scriptDataNum1 > 0) {\r\n\t\twhile (secretEntity.scriptDataNum1 > 0) {\r\n\t\t\tconst hasSummoned = handleSummon(\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\t\t\t\t0,\r\n\t\t\t);\r\n\t\t\tif (hasSummoned) {\r\n\t\t\t\tsecretEntity.scriptDataNum1--;\r\n\t\t\t} else {\r\n\t\t\t\t// No room to summon, we stop here\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\nconst handleStableAmalgamationForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst rewardEntity = playerEntity.questRewardEntities.find(\r\n\t\t(entity) => entity.cardId === CardIds.StableAmalgamation_BG28_Reward_518,\r\n\t);\r\n\tif (rewardEntity && rewardEntity.scriptDataNum1 > 0) {\r\n\t\twhile (rewardEntity.scriptDataNum1 > 0) {\r\n\t\t\tconst hasSummoned = handleSummon(\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t\tCardIds.StableAmalgamation_TotallyNormalHorseToken_BG28_Reward_518t,\r\n\t\t\t\t0,\r\n\t\t\t);\r\n\t\t\tif (hasSummoned) {\r\n\t\t\t\trewardEntity.scriptDataNum1--;\r\n\t\t\t} else {\r\n\t\t\t\t// No room to summon, we stop here\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst handleRapidReanimationForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst indexFromRight =\r\n\t\tplayerEntity.rapidReanimationIndexFromLeft === 0\r\n\t\t\t? Math.max(0, playerBoard.length - playerEntity.rapidReanimationIndexFromLeft)\r\n\t\t\t: playerEntity.rapidReanimationIndexFromRight;\r\n\tconst hasSummoned = handleSummon(\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t\tplayerEntity.rapidReanimationMinion.cardId,\r\n\t\tindexFromRight,\r\n\t\tplayerEntity.rapidReanimationMinion,\r\n\t);\r\n\tif (hasSummoned) {\r\n\t\tplayerEntity.rapidReanimationMinion = null;\r\n\t\t// Hard-coding a correction for Ancestral Automaton\r\n\t\t// Update 2024-11-22: looks like the new summoned copy now correctly includes the boost\r\n\t\t// https://replays.firestoneapp.com/?reviewId=295c1da2-44be-461e-8162-5a19eaa420a4&turn=7&action=2\r\n\t\t// hasSummoned.forEach((entity) => {\r\n\t\t// \tswitch (entity.cardId) {\r\n\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401:\r\n\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\r\n\t\t// \t\t\tconst overstatMult = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401 ? 1 : 2;\r\n\t\t// \t\t\tentity.attack = Math.max(1, entity.attack - 2 * overstatMult);\r\n\t\t// \t\t\tentity.health = Math.max(0, entity.health - overstatMult);\r\n\t\t// \t\t\tbreak;\r\n\t\t// \t}\r\n\t\t// });\r\n\t}\r\n};\r\n\r\nconst handleSummon = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n\tcardId: string,\r\n\tindexFromRight: number,\r\n\tminion: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (playerBoard.length >= 7) {\r\n\t\treturn null;\r\n\t}\r\n\tconst newMinion = buildSingleBoardEntity(\r\n\t\tcardId,\r\n\t\tplayerEntity,\r\n\t\tplayerBoard,\r\n\t\tgameState.allCards,\r\n\t\tplayerEntity.friendly,\r\n\t\tgameState.sharedState.currentEntityId++,\r\n\t\tfalse,\r\n\t\tgameState.cardsData,\r\n\t\tgameState.sharedState,\r\n\t\tminion,\r\n\t\tnull,\r\n\t);\r\n\t// Don't reapply auras in this particular case? See https://x.com/ZerotoHeroes_HS/status/1737422727118487808?s=20\r\n\tconst spawned = performEntitySpawns(\r\n\t\t[newMinion],\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\tplayerEntity,\r\n\t\tindexFromRight,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t\tfalse,\r\n\t);\r\n\tgameState.spectator.registerPowerTarget(playerEntity, newMinion, playerBoard, null, null);\r\n\treturn spawned;\r\n};\r\n"]}
1
+ {"version":3,"file":"summon-when-space.js","sourceRoot":"","sources":["../../src/simulation/summon-when-space.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { buildSingleBoardEntity, copyEntity, hasCorrectTribe } from '../utils';\r\nimport { removeAurasFromSelf } from './add-minion-to-board';\r\nimport { spawnEntities } from './deathrattle-spawns';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { performEntitySpawns } from './spawns';\r\n\r\nexport const handleSummonsWhenSpace = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\thandleSummonsWhenSpaceForPlayer(playerEntity, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\thandleSummonsWhenSpaceForPlayer(\r\n\t\topponentEntity,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\tgameState,\r\n\t);\r\n};\r\n\r\n// TODO: Twin Sky Lanterns wait for 2 spaces\r\nconst handleSummonsWhenSpaceForPlayer = (\r\n\ttargetEntity: BgsPlayerEntity,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tif (targetEntity.rapidReanimationMinion) {\r\n\t\thandleRapidReanimationForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.questRewards?.includes(CardIds.StableAmalgamation_BG28_Reward_518)) {\r\n\t\thandleStableAmalgamationForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.secrets?.some((s) => s.cardId === CardIds.BoonOfBeetles_BG28_603)) {\r\n\t\thandleBoonOfBeetlesForPlayer(playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t}\r\n\tif (targetEntity.heroPowerId === CardIds.Ozumat_Tentacular) {\r\n\t\thandleOzumatForPlayer(\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\ttargetEntity.friendly,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t}\r\n\ttargetEntity.trinkets\r\n\t\t.filter(\r\n\t\t\t(t) =>\r\n\t\t\t\tt.cardId === CardIds.TwinSkyLanterns_BG30_MagicItem_822 ||\r\n\t\t\t\tt.cardId === CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2,\r\n\t\t)\r\n\t\t.forEach((t) => {\r\n\t\t\thandleTwinSkyLanternsForPlayer(t, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t\t});\r\n\ttargetEntity.trinkets\r\n\t\t.filter((t) => t.cardId === CardIds.BoomController_BG30_MagicItem_440)\r\n\t\t.forEach((t) => {\r\n\t\t\thandleBoomControllerForPlayer(t, playerBoard, playerEntity, opponentBoard, opponentEntity, gameState);\r\n\t\t});\r\n};\r\n\r\nconst handleBoomControllerForPlayer = (\r\n\ttrinket: BoardTrinket,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (playerBoard.length < 7 && trinket.scriptDataNum1 > 0) {\r\n\t\tconst candidate = gameState.sharedState.deaths\r\n\t\t\t.filter((d) => d.friendly === playerEntity.friendly)\r\n\t\t\t.filter((d) => hasCorrectTribe(d, playerEntity, Race.MECH, gameState.allCards))[0];\r\n\t\tif (!!candidate) {\r\n\t\t\tconst spawn = copyEntity(candidate);\r\n\t\t\tremoveAurasFromSelf(spawn, playerBoard, playerEntity, gameState);\r\n\t\t\tconst initialIndexFromLeft = candidate.indexFromLeftAtTimeOfDeath;\r\n\t\t\tconst indexFromRight =\r\n\t\t\t\tinitialIndexFromLeft == null\r\n\t\t\t\t\t? 0\r\n\t\t\t\t\t: Math.min(playerBoard.length, Math.max(0, playerBoard.length - initialIndexFromLeft));\r\n\t\t\tconst target = spawnEntities(\r\n\t\t\t\tspawn.cardId,\r\n\t\t\t\t1,\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState.allCards,\r\n\t\t\t\tgameState.cardsData,\r\n\t\t\t\tgameState.sharedState,\r\n\t\t\t\tgameState.spectator,\r\n\t\t\t\tplayerEntity.friendly,\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\tfalse,\r\n\t\t\t\tspawn,\r\n\t\t\t);\r\n\t\t\t// FIXME: here it should try to match the position at which the original minions died\r\n\t\t\tconst actualSpawns = performEntitySpawns(\r\n\t\t\t\ttarget,\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\tindexFromRight,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t);\r\n\t\t\tactualSpawns.forEach((t) =>\r\n\t\t\t\tgameState.spectator.registerPowerTarget(playerEntity, t, playerBoard, playerEntity, opponentEntity),\r\n\t\t\t);\r\n\t\t\ttrinket.scriptDataNum1 = 0;\r\n\t\t\t// It summons an exact copy\r\n\t\t\t// actualSpawns.forEach((entity) => {\r\n\t\t\t// \tswitch (entity.cardId) {\r\n\t\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401:\r\n\t\t\t// \t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\r\n\t\t\t// \t\t\tconst overstatMult = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401 ? 1 : 2;\r\n\t\t\t// \t\t\tentity.attack = Math.max(1, entity.attack - 2 * overstatMult);\r\n\t\t\t// \t\t\tentity.health = Math.max(0, entity.health - overstatMult);\r\n\t\t\t// \t\t\tbreak;\r\n\t\t\t// \t}\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst handleTwinSkyLanternsForPlayer = (\r\n\ttrinket: BoardTrinket,\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tconst spawnNumber = trinket.scriptDataNum1;\r\n\tconst canTrigger = spawnNumber >= 1;\r\n\tif (playerBoard.length <= 7 - spawnNumber && trinket.rememberedMinion && canTrigger) {\r\n\t\ttrinket.scriptDataNum1 = 0;\r\n\t\tconst spawn = copyEntity(trinket.rememberedMinion);\r\n\t\tremoveAurasFromSelf(spawn, playerBoard, playerEntity, gameState);\r\n\t\tconst target = spawnEntities(\r\n\t\t\tspawn.cardId,\r\n\t\t\tspawnNumber,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState.allCards,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tgameState.spectator,\r\n\t\t\tplayerEntity.friendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\tspawn,\r\n\t\t);\r\n\t\tperformEntitySpawns(\r\n\t\t\ttarget,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\tplayerEntity,\r\n\t\t\t0,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t\ttarget.forEach((t) =>\r\n\t\t\tgameState.spectator.registerPowerTarget(playerEntity, t, playerBoard, playerEntity, opponentEntity),\r\n\t\t);\r\n\t}\r\n};\r\n\r\nconst handleOzumatForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tfriendly: boolean,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (playerBoard.length < 7 && playerEntity.heroPowerActivated === false) {\r\n\t\tconst tentacularSize = +playerEntity.heroPowerInfo;\r\n\t\tconst tentacular = spawnEntities(\r\n\t\t\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\t\t\t1,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState.allCards,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tgameState.spectator,\r\n\t\t\tfriendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t);\r\n\t\ttentacular[0].attack = tentacularSize;\r\n\t\ttentacular[0].health = tentacularSize;\r\n\t\tconst indexFromRight = 0;\r\n\t\tperformEntitySpawns(\r\n\t\t\ttentacular,\r\n\t\t\tplayerBoard,\r\n\t\t\tplayerEntity,\r\n\t\t\tplayerEntity,\r\n\t\t\tindexFromRight,\r\n\t\t\topponentBoard,\r\n\t\t\topponentEntity,\r\n\t\t\tgameState,\r\n\t\t);\r\n\t\tgameState.spectator.registerPowerTarget(playerEntity, tentacular[0], playerBoard, playerEntity, opponentEntity);\r\n\t\tplayerEntity.heroPowerActivated = true;\r\n\t}\r\n};\r\n\r\nconst handleBoonOfBeetlesForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst secretEntity = playerEntity.secrets.find((entity) => entity.cardId === CardIds.BoonOfBeetles_BG28_603);\r\n\tif (secretEntity && secretEntity.scriptDataNum1 > 0) {\r\n\t\twhile (secretEntity.scriptDataNum1 > 0) {\r\n\t\t\tconst hasSummoned = handleSummon(\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\t\t\t\t0,\r\n\t\t\t);\r\n\t\t\tif (hasSummoned) {\r\n\t\t\t\tsecretEntity.scriptDataNum1--;\r\n\t\t\t} else {\r\n\t\t\t\t// No room to summon, we stop here\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\nconst handleStableAmalgamationForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst rewardEntity = playerEntity.questRewardEntities.find(\r\n\t\t(entity) => entity.cardId === CardIds.StableAmalgamation_BG28_Reward_518,\r\n\t);\r\n\tif (rewardEntity && rewardEntity.scriptDataNum1 > 0) {\r\n\t\twhile (rewardEntity.scriptDataNum1 > 0) {\r\n\t\t\tconst hasSummoned = handleSummon(\r\n\t\t\t\tplayerBoard,\r\n\t\t\t\tplayerEntity,\r\n\t\t\t\topponentBoard,\r\n\t\t\t\topponentEntity,\r\n\t\t\t\tgameState,\r\n\t\t\t\tCardIds.StableAmalgamation_TotallyNormalHorseToken_BG28_Reward_518t,\r\n\t\t\t\t0,\r\n\t\t\t);\r\n\t\t\tif (hasSummoned) {\r\n\t\t\t\trewardEntity.scriptDataNum1--;\r\n\t\t\t} else {\r\n\t\t\t\t// No room to summon, we stop here\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst handleRapidReanimationForPlayer = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst indexFromRight =\r\n\t\tplayerEntity.rapidReanimationIndexFromLeft === 0\r\n\t\t\t? Math.max(0, playerBoard.length - playerEntity.rapidReanimationIndexFromLeft)\r\n\t\t\t: playerEntity.rapidReanimationIndexFromRight;\r\n\tconst hasSummoned = handleSummon(\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t\tplayerEntity.rapidReanimationMinion.cardId,\r\n\t\tindexFromRight,\r\n\t\tplayerEntity.rapidReanimationMinion,\r\n\t);\r\n\tif (hasSummoned) {\r\n\t\tplayerEntity.rapidReanimationMinion = null;\r\n\t\t// Hard-coding a correction for Ancestral Automaton\r\n\t\thasSummoned.forEach((entity) => {\r\n\t\t\tswitch (entity.cardId) {\r\n\t\t\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\r\n\t\t\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\r\n\t\t\t\t\tconst overstatMult = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401 ? 1 : 2;\r\n\t\t\t\t\tentity.attack = Math.max(1, entity.attack + 2 * overstatMult);\r\n\t\t\t\t\tentity.health = Math.max(0, entity.health + overstatMult);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst handleSummon = (\r\n\tplayerBoard: BoardEntity[],\r\n\tplayerEntity: BgsPlayerEntity,\r\n\topponentBoard: BoardEntity[],\r\n\topponentEntity: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n\tcardId: string,\r\n\tindexFromRight: number,\r\n\tminion: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (playerBoard.length >= 7) {\r\n\t\treturn null;\r\n\t}\r\n\tconst newMinion = buildSingleBoardEntity(\r\n\t\tcardId,\r\n\t\tplayerEntity,\r\n\t\tplayerBoard,\r\n\t\tgameState.allCards,\r\n\t\tplayerEntity.friendly,\r\n\t\tgameState.sharedState.currentEntityId++,\r\n\t\tfalse,\r\n\t\tgameState.cardsData,\r\n\t\tgameState.sharedState,\r\n\t\tminion,\r\n\t\tnull,\r\n\t);\r\n\t// Don't reapply auras in this particular case? See https://x.com/ZerotoHeroes_HS/status/1737422727118487808?s=20\r\n\tconst spawned = performEntitySpawns(\r\n\t\t[newMinion],\r\n\t\tplayerBoard,\r\n\t\tplayerEntity,\r\n\t\tplayerEntity,\r\n\t\tindexFromRight,\r\n\t\topponentBoard,\r\n\t\topponentEntity,\r\n\t\tgameState,\r\n\t\tfalse,\r\n\t);\r\n\tgameState.spectator.registerPowerTarget(playerEntity, newMinion, playerBoard, null, null);\r\n\treturn spawned;\r\n};\r\n"]}