@firestone-hs/simulate-bgs-battle 1.1.668 → 1.1.670

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 (104) hide show
  1. package/dist/cards/impl/_card-mappings.js +4 -0
  2. package/dist/cards/impl/_card-mappings.js.map +1 -1
  3. package/dist/cards/impl/bg-spell/timewarped-bananas.js +2 -2
  4. package/dist/cards/impl/bg-spell/timewarped-bananas.js.map +1 -1
  5. package/dist/cards/impl/minion/apexis-guardian.js +8 -8
  6. package/dist/cards/impl/minion/apexis-guardian.js.map +1 -1
  7. package/dist/cards/impl/minion/blue-volumizer.js +1 -1
  8. package/dist/cards/impl/minion/blue-volumizer.js.map +1 -1
  9. package/dist/cards/impl/minion/briarback-drummer.js +1 -1
  10. package/dist/cards/impl/minion/briarback-drummer.js.map +1 -1
  11. package/dist/cards/impl/minion/budding-greenthumb.js +1 -1
  12. package/dist/cards/impl/minion/budding-greenthumb.js.map +1 -1
  13. package/dist/cards/impl/minion/campfire-shadow.js +5 -2
  14. package/dist/cards/impl/minion/campfire-shadow.js.map +1 -1
  15. package/dist/cards/impl/minion/champion-of-the-primus.js +1 -1
  16. package/dist/cards/impl/minion/champion-of-the-primus.js.map +1 -1
  17. package/dist/cards/impl/minion/charging-czarina.js +1 -1
  18. package/dist/cards/impl/minion/charging-czarina.js.map +1 -1
  19. package/dist/cards/impl/minion/costume-enthusiast.js +1 -1
  20. package/dist/cards/impl/minion/costume-enthusiast.js.map +1 -1
  21. package/dist/cards/impl/minion/dastardly-drust.js +2 -2
  22. package/dist/cards/impl/minion/dastardly-drust.js.map +1 -1
  23. package/dist/cards/impl/minion/dramaloc.js +1 -1
  24. package/dist/cards/impl/minion/dramaloc.js.map +1 -1
  25. package/dist/cards/impl/minion/fauna-whisperer.js +11 -13
  26. package/dist/cards/impl/minion/fauna-whisperer.js.map +1 -1
  27. package/dist/cards/impl/minion/fire-forged-evoker.js +1 -1
  28. package/dist/cards/impl/minion/fire-forged-evoker.js.map +1 -1
  29. package/dist/cards/impl/minion/forsaken-weaver.js +1 -1
  30. package/dist/cards/impl/minion/forsaken-weaver.js.map +1 -1
  31. package/dist/cards/impl/minion/ghoul-of-the-feast.js +1 -1
  32. package/dist/cards/impl/minion/ghoul-of-the-feast.js.map +1 -1
  33. package/dist/cards/impl/minion/highkeeper-ra.d.ts +2 -2
  34. package/dist/cards/impl/minion/highkeeper-ra.js +10 -0
  35. package/dist/cards/impl/minion/highkeeper-ra.js.map +1 -1
  36. package/dist/cards/impl/minion/junk-jouster.js +1 -1
  37. package/dist/cards/impl/minion/junk-jouster.js.map +1 -1
  38. package/dist/cards/impl/minion/nalaa-the-redeemer.d.ts +2 -0
  39. package/dist/cards/impl/minion/nalaa-the-redeemer.js +12 -0
  40. package/dist/cards/impl/minion/nalaa-the-redeemer.js.map +1 -0
  41. package/dist/cards/impl/minion/plankwalker.js +1 -1
  42. package/dist/cards/impl/minion/plankwalker.js.map +1 -1
  43. package/dist/cards/impl/minion/red-volumizer.js +1 -1
  44. package/dist/cards/impl/minion/red-volumizer.js.map +1 -1
  45. package/dist/cards/impl/minion/soulsplitter.js +4 -2
  46. package/dist/cards/impl/minion/soulsplitter.js.map +1 -1
  47. package/dist/cards/impl/minion/stalwart-kodo.js +1 -1
  48. package/dist/cards/impl/minion/stalwart-kodo.js.map +1 -1
  49. package/dist/cards/impl/minion/the-last-one-standing.js +1 -1
  50. package/dist/cards/impl/minion/the-last-one-standing.js.map +1 -1
  51. package/dist/cards/impl/minion/timewarped-bassgill.js +1 -1
  52. package/dist/cards/impl/minion/timewarped-bassgill.js.map +1 -1
  53. package/dist/cards/impl/minion/timewarped-caretaker.js +1 -1
  54. package/dist/cards/impl/minion/timewarped-caretaker.js.map +1 -1
  55. package/dist/cards/impl/minion/timewarped-centurion.js +1 -1
  56. package/dist/cards/impl/minion/timewarped-centurion.js.map +1 -1
  57. package/dist/cards/impl/minion/timewarped-duskmaw.js +1 -1
  58. package/dist/cards/impl/minion/timewarped-duskmaw.js.map +1 -1
  59. package/dist/cards/impl/minion/timewarped-electron.js +4 -1
  60. package/dist/cards/impl/minion/timewarped-electron.js.map +1 -1
  61. package/dist/cards/impl/minion/timewarped-geist.js +1 -1
  62. package/dist/cards/impl/minion/timewarped-geist.js.map +1 -1
  63. package/dist/cards/impl/minion/timewarped-goldrinn.js +5 -4
  64. package/dist/cards/impl/minion/timewarped-goldrinn.js.map +1 -1
  65. package/dist/cards/impl/minion/timewarped-grease-bot.js +1 -1
  66. package/dist/cards/impl/minion/timewarped-grease-bot.js.map +1 -1
  67. package/dist/cards/impl/minion/timewarped-hooktail.js +1 -1
  68. package/dist/cards/impl/minion/timewarped-hooktail.js.map +1 -1
  69. package/dist/cards/impl/minion/timewarped-interpreter.js +1 -1
  70. package/dist/cards/impl/minion/timewarped-interpreter.js.map +1 -1
  71. package/dist/cards/impl/minion/timewarped-jungle-king.js +1 -1
  72. package/dist/cards/impl/minion/timewarped-jungle-king.js.map +1 -1
  73. package/dist/cards/impl/minion/timewarped-painter.js +2 -2
  74. package/dist/cards/impl/minion/timewarped-painter.js.map +1 -1
  75. package/dist/cards/impl/minion/timewarped-primscale.js +1 -1
  76. package/dist/cards/impl/minion/timewarped-primscale.js.map +1 -1
  77. package/dist/cards/impl/minion/timewarped-ragnaros.js +2 -2
  78. package/dist/cards/impl/minion/timewarped-ragnaros.js.map +1 -1
  79. package/dist/cards/impl/minion/timewarped-saurolisk.js +1 -1
  80. package/dist/cards/impl/minion/timewarped-saurolisk.js.map +1 -1
  81. package/dist/cards/impl/minion/timewarped-sensei.js +1 -1
  82. package/dist/cards/impl/minion/timewarped-sensei.js.map +1 -1
  83. package/dist/cards/impl/minion/timewarped-steamer.js +8 -2
  84. package/dist/cards/impl/minion/timewarped-steamer.js.map +1 -1
  85. package/dist/cards/impl/minion/timewarped-sylvar.js +1 -1
  86. package/dist/cards/impl/minion/timewarped-sylvar.js.map +1 -1
  87. package/dist/cards/impl/minion/timewarped-tender.js +1 -1
  88. package/dist/cards/impl/minion/timewarped-tender.js.map +1 -1
  89. package/dist/cards/impl/minion/timewarped-tide-razor.js +1 -1
  90. package/dist/cards/impl/minion/timewarped-tide-razor.js.map +1 -1
  91. package/dist/cards/impl/minion/timewarped-twirler.d.ts +2 -2
  92. package/dist/cards/impl/minion/timewarped-twirler.js +1 -24
  93. package/dist/cards/impl/minion/timewarped-twirler.js.map +1 -1
  94. package/dist/cards/impl/minion/utility-drone.d.ts +2 -0
  95. package/dist/cards/impl/minion/utility-drone.js +18 -0
  96. package/dist/cards/impl/minion/utility-drone.js.map +1 -0
  97. package/dist/cards/impl/minion/whirling-lass-o-matic.js +1 -1
  98. package/dist/cards/impl/minion/whirling-lass-o-matic.js.map +1 -1
  99. package/dist/cards/impl/trinket/sepulchral-sergent.js +7 -4
  100. package/dist/cards/impl/trinket/sepulchral-sergent.js.map +1 -1
  101. package/dist/simulation/magnetize.d.ts +1 -0
  102. package/dist/simulation/magnetize.js +5 -1
  103. package/dist/simulation/magnetize.js.map +1 -1
  104. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-goldrinn.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-goldrinn.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,kBAAkB,GAAyB;IACvD,OAAO,EAAE,sCAAwF;IACjG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC;QAC9B,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,YAAY,EACZ,YAAY,EACZ,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,eAAe,IAAI,YAAY,CAAC;QACzE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,kBAAkB,IAAI,YAAY,CAAC;QAC5E,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedGoldrinn: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedGoldrinn_BG34_Giant_362, CardIds.TimewarpedGoldrinn_BG34_Giant_362_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedGoldrinn_BG34_Giant_362_G ? 2 : 1;\r\n\t\tconst goldrinnBuff = 2 * 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\tgoldrinnBuff,\r\n\t\t\tgoldrinnBuff,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffAtk += goldrinnBuff;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffHealth += goldrinnBuff;\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-goldrinn.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-goldrinn.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,kBAAkB,GAAyB;IACvD,OAAO,EAAE,sCAAwF;IACjG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC;QACpC,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAC;QACpC,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,eAAe,IAAI,kBAAkB,CAAC;QAC/E,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,kBAAkB,IAAI,kBAAkB,CAAC;QAClF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedGoldrinn: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedGoldrinn_BG34_Giant_362, CardIds.TimewarpedGoldrinn_BG34_Giant_362_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedGoldrinn_BG34_Giant_362_G ? 2 : 1;\r\n\t\tconst goldrinnAttackBuff = 3 * mult;\r\n\t\tconst goldrinnHealthBuff = 2 * 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\tgoldrinnAttackBuff,\r\n\t\t\tgoldrinnHealthBuff,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffAtk += goldrinnAttackBuff;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.GoldrinnBuffHealth += goldrinnHealthBuff;\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ exports.TimewarpedGreaseBot = {
6
6
  cardIds: ["BG34_Giant_656", "BG34_Giant_656_G"],
7
7
  onDivineShieldUpdated: (minion, input) => {
8
8
  const mult = minion.cardId === "BG34_Giant_656_G" ? 2 : 1;
9
- (0, utils_1.addStatsToBoard)(input.target, input.board, input.hero, 2 * mult, 2 * mult, input.gameState);
9
+ (0, utils_1.addStatsToBoard)(input.target, input.board, input.hero, 3 * mult, 3 * mult, input.gameState);
10
10
  },
11
11
  };
12
12
  //# sourceMappingURL=timewarped-grease-bot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-grease-bot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-grease-bot.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,mBAAmB,GAA8B;IAC7D,OAAO,EAAE,sCAA0F;IACnG,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnDivineShieldUpdatedInput } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnDivineShieldUpdatedCard } from '../../card.interface';\r\n\r\nexport const TimewarpedGreaseBot: OnDivineShieldUpdatedCard = {\r\n\tcardIds: [CardIds.TimewarpedGreaseBot_BG34_Giant_656, CardIds.TimewarpedGreaseBot_BG34_Giant_656_G],\r\n\tonDivineShieldUpdated: (minion: BoardEntity, input: OnDivineShieldUpdatedInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedGreaseBot_BG34_Giant_656_G ? 2 : 1;\r\n\t\taddStatsToBoard(input.target, input.board, input.hero, 2 * mult, 2 * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-grease-bot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-grease-bot.ts"],"names":[],"mappings":";;;AAGA,0CAAiD;AAGpC,QAAA,mBAAmB,GAA8B;IAC7D,OAAO,EAAE,sCAA0F;IACnG,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { OnDivineShieldUpdatedInput } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnDivineShieldUpdatedCard } from '../../card.interface';\r\n\r\nexport const TimewarpedGreaseBot: OnDivineShieldUpdatedCard = {\r\n\tcardIds: [CardIds.TimewarpedGreaseBot_BG34_Giant_656, CardIds.TimewarpedGreaseBot_BG34_Giant_656_G],\r\n\tonDivineShieldUpdated: (minion: BoardEntity, input: OnDivineShieldUpdatedInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedGreaseBot_BG34_Giant_656_G ? 2 : 1;\r\n\t\taddStatsToBoard(input.target, input.board, input.hero, 3 * mult, 3 * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ exports.TimewarpedHootail = {
6
6
  cardIds: ["BG34_Giant_015", "BG34_Giant_015_G"],
7
7
  onTavernSpellCast: (entity, input) => {
8
8
  const mult = entity.cardId === "BG34_Giant_015_G" ? 2 : 1;
9
- (0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 2 * mult, 1 * mult, input.gameState);
9
+ (0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 2 * mult, 2 * mult, input.gameState);
10
10
  },
11
11
  };
12
12
  //# sourceMappingURL=timewarped-hooktail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-hooktail.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-hooktail.ts"],"names":[],"mappings":";;;AAEA,0CAAiD;AAGpC,QAAA,iBAAiB,GAA0B;IACvD,OAAO,EAAE,sCAAwF;IACjG,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const TimewarpedHootail: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedHooktail_BG34_Giant_015, CardIds.TimewarpedHooktail_BG34_Giant_015_G],\r\n\tonTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedHooktail_BG34_Giant_015_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, 2 * mult, 1 * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-hooktail.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-hooktail.ts"],"names":[],"mappings":";;;AAEA,0CAAiD;AAGpC,QAAA,iBAAiB,GAA0B;IACvD,OAAO,EAAE,sCAAwF;IACjG,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const TimewarpedHootail: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedHooktail_BG34_Giant_015, CardIds.TimewarpedHooktail_BG34_Giant_015_G],\r\n\tonTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedHooktail_BG34_Giant_015_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, 2 * mult, 2 * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -7,7 +7,7 @@ exports.TimewarpedInterpreter = {
7
7
  cardIds: ["BG34_Giant_120", "BG34_Giant_120_G"],
8
8
  onBeforeMagnetize: (entity, input) => {
9
9
  const mult = entity.cardId === "BG34_Giant_120_G" ? 2 : 1;
10
- (0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 3 * mult, 1 * mult, input.gameState, reference_data_1.Race[reference_data_1.Race.MECH]);
10
+ (0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 3 * mult, 2 * mult, input.gameState, reference_data_1.Race[reference_data_1.Race.MECH]);
11
11
  },
12
12
  };
13
13
  //# sourceMappingURL=timewarped-interpreter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-interpreter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-interpreter.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,qBAAqB,GAA0B;IAC3D,OAAO,EAAE,sCAA8F;IACvG,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeInput } from '../../../simulation/magnetize';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnBeforeMagnetizeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedInterpreter: OnBeforeMagnetizeCard = {\r\n\tcardIds: [CardIds.TimewarpedInterpreter_BG34_Giant_120, CardIds.TimewarpedInterpreter_BG34_Giant_120_G],\r\n\tonBeforeMagnetize: (entity: BoardEntity, input: OnBeforeMagnetizeInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedInterpreter_BG34_Giant_120_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, 3 * mult, 1 * mult, input.gameState, Race[Race.MECH]);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-interpreter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-interpreter.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,qBAAqB,GAA0B;IAC3D,OAAO,EAAE,sCAA8F;IACvG,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeInput } from '../../../simulation/magnetize';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnBeforeMagnetizeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedInterpreter: OnBeforeMagnetizeCard = {\r\n\tcardIds: [CardIds.TimewarpedInterpreter_BG34_Giant_120, CardIds.TimewarpedInterpreter_BG34_Giant_120_G],\r\n\tonBeforeMagnetize: (entity: BoardEntity, input: OnBeforeMagnetizeInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedInterpreter_BG34_Giant_120_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, 3 * mult, 2 * mult, input.gameState, Race[Race.MECH]);\r\n\t},\r\n};\r\n"]}
@@ -13,7 +13,7 @@ exports.TimewarpedJungleKing = {
13
13
  }
14
14
  const baseBuff = (_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 1;
15
15
  const mult = minion.cardId === "BG34_PreMadeChamp_004_G" ? 2 : 1;
16
- (0, stats_1.modifyStats)(input.spawned, minion, 2 * baseBuff * mult, 1 * baseBuff * mult, input.board, input.hero, input.gameState);
16
+ (0, stats_1.modifyStats)(input.spawned, minion, 3 * baseBuff * mult, 2 * baseBuff * mult, input.board, input.hero, input.gameState);
17
17
  },
18
18
  afterTavernSpellCast: (entity, input) => {
19
19
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-jungle-king.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-jungle-king.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,oBAAoB,GAAqD;IACrF,OAAO,EAAE,oDAA0G;IACnH,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;;QACpE,IACC,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,OAAO;SACP;QAED,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAA,mBAAW,EACV,KAAK,CAAC,OAAO,EACb,MAAM,EACN,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;IACD,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard, AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TimewarpedJungleKing: AfterOtherSpawnedCard & AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004, CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst baseBuff = minion.scriptDataNum1 ?? 1;\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tinput.spawned,\r\n\t\t\tminion,\r\n\t\t\t2 * baseBuff * mult,\r\n\t\t\t1 * baseBuff * mult,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n\tafterTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tentity.scriptDataNum1 = entity.scriptDataNum1 ?? 0;\r\n\t\tentity.scriptDataNum1++;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-jungle-king.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-jungle-king.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,oBAAoB,GAAqD;IACrF,OAAO,EAAE,oDAA0G;IACnH,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAwB,EAAE,EAAE;;QACpE,IACC,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC3G;YACD,OAAO;SACP;QAED,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAA,mBAAW,EACV,KAAK,CAAC,OAAO,EACb,MAAM,EACN,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;IACD,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard, AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TimewarpedJungleKing: AfterOtherSpawnedCard & AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004, CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004_G],\r\n\tafterOtherSpawned: (minion: BoardEntity, input: OnOtherSpawnInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst baseBuff = minion.scriptDataNum1 ?? 1;\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedJungleKing_BG34_PreMadeChamp_004_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tinput.spawned,\r\n\t\t\tminion,\r\n\t\t\t3 * baseBuff * mult,\r\n\t\t\t2 * baseBuff * mult,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n\tafterTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tentity.scriptDataNum1 = entity.scriptDataNum1 ?? 0;\r\n\t\tentity.scriptDataNum1++;\r\n\t},\r\n};\r\n"]}
@@ -9,10 +9,10 @@ exports.TimewarpedPainter = {
9
9
  var _a;
10
10
  const targets = (0, attack_1.getNeighbours)(input.board, minion);
11
11
  const mult = minion.cardId === "BG34_Giant_319_G" ? 2 : 1;
12
- const baseBuff = (_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 2;
12
+ const baseBuff = (_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 1;
13
13
  for (const target of targets) {
14
14
  input.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);
15
- (0, stats_1.modifyStats)(target, minion, baseBuff * mult, baseBuff * mult, input.board, input.hero, input.gameState);
15
+ (0, stats_1.modifyStats)(target, minion, 2 * baseBuff * mult, 1 * baseBuff * mult, input.board, input.hero, input.gameState);
16
16
  }
17
17
  },
18
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-painter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-painter.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AAG3C,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,sCAAsF;IAC/F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,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;YACxG,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedPainter: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedPainter_BG34_Giant_319, CardIds.TimewarpedPainter_BG34_Giant_319_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst targets = getNeighbours(input.board, minion);\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPainter_BG34_Giant_319_G ? 2 : 1;\r\n\t\tconst baseBuff = minion.scriptDataNum1 ?? 2;\r\n\t\tfor (const target of targets) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);\r\n\t\t\tmodifyStats(target, minion, baseBuff * mult, baseBuff * mult, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-painter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-painter.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AAG3C,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,sCAAsF;IAC/F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,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;YACxG,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,CAAC,GAAG,QAAQ,GAAG,IAAI,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedPainter: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedPainter_BG34_Giant_319, CardIds.TimewarpedPainter_BG34_Giant_319_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst targets = getNeighbours(input.board, minion);\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPainter_BG34_Giant_319_G ? 2 : 1;\r\n\t\tconst baseBuff = minion.scriptDataNum1 ?? 1;\r\n\t\tfor (const target of targets) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(minion, target, input.board, input.hero, input.otherHero);\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\t2 * baseBuff * mult,\r\n\t\t\t\t1 * baseBuff * mult,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -7,7 +7,7 @@ exports.TimewarpedPrimscale = {
7
7
  baseAvengeValue: (cardId) => 3,
8
8
  avenge: (minion, input) => {
9
9
  const mult = minion.cardId === "BG34_PreMadeChamp_022_G" ? 2 : 1;
10
- const cardsToAdd = Array.from({ length: mult }).map(() => input.gameState.cardsData.getRandomTavernSpell({ maxTavernTier: input.hero.tavernTier }));
10
+ const cardsToAdd = Array.from({ length: mult }).map(() => "BG28_169");
11
11
  (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
12
12
  },
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-primscale.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-primscale.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,oDAA0G;IACnH,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CACxD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CACxF,CAAC;QACF,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedPrimscale: AvengeCard = {\r\n\tcardIds: [CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022, CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: mult }).map(() =>\r\n\t\t\tinput.gameState.cardsData.getRandomTavernSpell({ maxTavernTier: input.hero.tavernTier }),\r\n\t\t);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-primscale.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-primscale.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,oDAA0G;IACnH,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,WAAoC,CAAC,CAAC;QAC/F,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedPrimscale: AvengeCard = {\r\n\tcardIds: [CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022, CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPrismscale_BG34_PreMadeChamp_022_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: mult }).map(() => CardIds.AzeriteEmpowerment_BG28_169);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -8,9 +8,9 @@ exports.TimewarpedRagnaros = {
8
8
  startOfCombatTiming: 'start-of-combat',
9
9
  startOfCombat: (minion, input) => {
10
10
  const mult = minion.cardId === "BG34_Giant_580_G" ? 2 : 1;
11
- const target = (0, utils_1.pickRandom)(input.opponentBoard);
11
+ const target = (0, utils_1.pickRandomHighestHealth)(input.opponentBoard);
12
12
  if (!!target) {
13
- (0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, input.playerEntity, 8 * mult, input.playerBoard, input.playerEntity, input.gameState);
13
+ (0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, input.playerEntity, minion.attack * mult, input.playerBoard, input.playerEntity, input.gameState);
14
14
  }
15
15
  return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
16
16
  },
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-ragnaros.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-ragnaros.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AACrD,uDAAgE;AAInD,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,sCAAwF;IACjG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,2BAAkB,EACjB,MAAM,EACN,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,YAAY,EAClB,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedRagnaros: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedRagnaros_BG34_Giant_580, CardIds.TimewarpedRagnaros_BG34_Giant_580_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedRagnaros_BG34_Giant_580_G ? 2 : 1;\r\n\t\tconst target = pickRandom(input.opponentBoard);\r\n\t\tif (!!target) {\r\n\t\t\tdealDamageToMinion(\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t8 * mult,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-ragnaros.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-ragnaros.ts"],"names":[],"mappings":";;;AAEA,mDAAkE;AAClE,uDAAgE;AAInD,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,sCAAwF;IACjG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,2BAAkB,EACjB,MAAM,EACN,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,YAAY,EAClB,MAAM,CAAC,MAAM,GAAG,IAAI,EACpB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandomHighestHealth } from '../../../services/utils';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedRagnaros: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedRagnaros_BG34_Giant_580, CardIds.TimewarpedRagnaros_BG34_Giant_580_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedRagnaros_BG34_Giant_580_G ? 2 : 1;\r\n\t\tconst target = pickRandomHighestHealth(input.opponentBoard);\r\n\t\tif (!!target) {\r\n\t\t\tdealDamageToMinion(\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tminion.attack * mult,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ exports.TimewarpedSaurolisk = {
6
6
  cardIds: ["BG34_Giant_202", "BG34_Giant_202_G"],
7
7
  onDeathrattleTriggered: (minion, input) => {
8
8
  const mult = minion.cardId === "BG34_Giant_202_G" ? 2 : 1;
9
- (0, stats_1.modifyStats)(minion, minion, 3 * mult, 3 * mult, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
9
+ (0, stats_1.modifyStats)(minion, minion, 3 * mult, 2 * mult, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
10
10
  return true;
11
11
  },
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-saurolisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-saurolisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,mBAAmB,GAA6B;IAC5D,OAAO,EAAE,sCAA0F;IACnG,sBAAsB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const TimewarpedSaurolisk: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.TimewarpedSaurolisk_BG34_Giant_202, CardIds.TimewarpedSaurolisk_BG34_Giant_202_G],\r\n\tonDeathrattleTriggered: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSaurolisk_BG34_Giant_202_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\t3 * mult,\r\n\t\t\t3 * mult,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\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":"timewarped-saurolisk.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-saurolisk.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,mBAAmB,GAA6B;IAC5D,OAAO,EAAE,sCAA0F;IACnG,sBAAsB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const TimewarpedSaurolisk: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.TimewarpedSaurolisk_BG34_Giant_202, CardIds.TimewarpedSaurolisk_BG34_Giant_202_G],\r\n\tonDeathrattleTriggered: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSaurolisk_BG34_Giant_202_G ? 2 : 1;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\t3 * mult,\r\n\t\t\t2 * mult,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -12,7 +12,7 @@ exports.TimewarpedSensei = {
12
12
  const neighbours = (0, attack_1.getNeighbours)(input.board, minion);
13
13
  for (const neighbour of neighbours) {
14
14
  if ((0, utils_1.hasCorrectTribe)(neighbour, input.hero, reference_data_1.Race.MECH, input.gameState.anomalies, input.gameState.allCards)) {
15
- (0, stats_1.modifyStats)(neighbour, minion, 3 * mult, 2 * mult, input.board, input.hero, input.gameState);
15
+ (0, stats_1.modifyStats)(neighbour, minion, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);
16
16
  }
17
17
  }
18
18
  },
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-sensei.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-sensei.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAA2D;AAC3D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IACC,IAAA,uBAAe,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EACrG;gBACD,IAAA,mBAAW,EAAC,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC7F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSensei: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSensei_BG34_Giant_209, CardIds.TimewarpedSensei_BG34_Giant_209_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSensei_BG34_Giant_209_G ? 2 : 1;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (const neighbour of neighbours) {\r\n\t\t\tif (\r\n\t\t\t\thasCorrectTribe(neighbour, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t\t) {\r\n\t\t\t\tmodifyStats(neighbour, minion, 3 * mult, 2 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-sensei.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-sensei.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAA2D;AAC3D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IACC,IAAA,uBAAe,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EACrG;gBACD,IAAA,mBAAW,EAAC,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC7F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSensei: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSensei_BG34_Giant_209, CardIds.TimewarpedSensei_BG34_Giant_209_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSensei_BG34_Giant_209_G ? 2 : 1;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (const neighbour of neighbours) {\r\n\t\t\tif (\r\n\t\t\t\thasCorrectTribe(neighbour, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t\t) {\r\n\t\t\t\tmodifyStats(neighbour, minion, 3 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -6,8 +6,14 @@ exports.TimewarpedSteamer = {
6
6
  cardIds: ["BG34_PreMadeChamp_038", "BG34_PreMadeChamp_038_G"],
7
7
  endOfTurn: (minion, input) => {
8
8
  const mult = minion.cardId === "BG34_PreMadeChamp_038_G" ? 2 : 1;
9
- const cardsToAdd = Array.from({ length: 2 * mult }).map(() => { var _a; return input.gameState.cardsData.getRandomMechToMagnetize((_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 5); });
10
- (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
9
+ const cardsToAdd = [
10
+ "BG34_170t2",
11
+ "BG34_170t3",
12
+ "BG34_170t",
13
+ ];
14
+ for (let i = 0; i < mult; i++) {
15
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
16
+ }
11
17
  },
12
18
  };
13
19
  //# sourceMappingURL=timewarped-steamer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-steamer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-steamer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAGtD,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,oDAAoG;IAC7G,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAsD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,WAC5D,OAAA,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAA,EAAA,CAC9E,CAAC;QACF,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSteamer: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038, CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: 2 * mult }).map(() =>\r\n\t\t\tinput.gameState.cardsData.getRandomMechToMagnetize(input.hero.tavernTier ?? 5),\r\n\t\t);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-steamer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-steamer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAGtD,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,oDAAoG;IAC7G,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,8BAAsD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG;;;;SAIlB,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACrE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSteamer: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038, CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSteamer_BG34_PreMadeChamp_038_G ? 2 : 1;\r\n\t\tconst cardsToAdd = [\r\n\t\t\tCardIds.AutoAccelerator_BlueVolumizerToken_BG34_170t2,\r\n\t\t\tCardIds.AutoAccelerator_GreenVolumizerToken_BG34_170t3,\r\n\t\t\tCardIds.AutoAccelerator_RedVolumizerToken_BG34_170t,\r\n\t\t];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -11,7 +11,7 @@ exports.TimewarpedSylvar = {
11
11
  const goldenMinions = input.board.filter((e) => (0, utils_1.isGolden)(e.cardId, input.gameState.allCards)).length;
12
12
  const neighbours = (0, attack_1.getNeighbours)(input.board, minion);
13
13
  for (let i = 0; i < goldenMinions + 1; i++) {
14
- neighbours.forEach((target) => (0, stats_1.modifyStats)(target, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState));
14
+ neighbours.forEach((target) => (0, stats_1.modifyStats)(target, minion, 8 * mult, 8 * mult, input.board, input.hero, input.gameState));
15
15
  }
16
16
  },
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-sylvar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-sylvar.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACrG,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CACzF,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSylvar: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSylvar_BG34_Giant_021, CardIds.TimewarpedSylvar_BG34_Giant_021_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSylvar_BG34_Giant_021_G ? 2 : 1;\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards)).length;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (let i = 0; i < goldenMinions + 1; i++) {\r\n\t\t\tneighbours.forEach((target) =>\r\n\t\t\t\tmodifyStats(target, minion, 4 * mult, 4 * mult, input.board, input.hero, input.gameState),\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-sylvar.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-sylvar.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAC3D,qDAAwD;AACxD,0CAA0C;AAG7B,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACrG,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CACzF,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { isGolden } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedSylvar: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedSylvar_BG34_Giant_021, CardIds.TimewarpedSylvar_BG34_Giant_021_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedSylvar_BG34_Giant_021_G ? 2 : 1;\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards)).length;\r\n\t\tconst neighbours = getNeighbours(input.board, minion);\r\n\t\tfor (let i = 0; i < goldenMinions + 1; i++) {\r\n\t\t\tneighbours.forEach((target) =>\r\n\t\t\t\tmodifyStats(target, minion, 8 * mult, 8 * mult, input.board, input.hero, input.gameState),\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ exports.TimewarpedTender = {
6
6
  cardIds: ["BG34_Giant_603", "BG34_Giant_603_G"],
7
7
  endOfTurn: (minion, input) => {
8
8
  const mult = minion.cardId === "BG34_Giant_603_G" ? 2 : 1;
9
- const cardsToAdd = Array(2 * mult).fill(() => input.gameState.cardsData.getRandomTavernSpell());
9
+ const cardsToAdd = Array.from({ length: 2 * mult }).map(() => input.gameState.cardsData.getRandomTavernSpell());
10
10
  (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
11
11
  },
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-tender.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-tender.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAGtD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChG,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedTender: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedTender_BG34_Giant_603, CardIds.TimewarpedTender_BG34_Giant_603_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedTender_BG34_Giant_603_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(2 * mult).fill(() => input.gameState.cardsData.getRandomTavernSpell());\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-tender.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-tender.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAGtD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,sCAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChH,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const TimewarpedTender: EndOfTurnCard = {\r\n\tcardIds: [CardIds.TimewarpedTender_BG34_Giant_603, CardIds.TimewarpedTender_BG34_Giant_603_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedTender_BG34_Giant_603_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: 2 * mult }).map(() => input.gameState.cardsData.getRandomTavernSpell());\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -10,7 +10,7 @@ exports.TimewarpedTideRazor = {
10
10
  var _a;
11
11
  const mult = minion.cardId === "BG34_Giant_328_G" ? 2 : 1;
12
12
  const spawnedEntities = [];
13
- for (let i = 0; i < 3 * mult; i++) {
13
+ for (let i = 0; i < 4 * mult; i++) {
14
14
  const cardToAdd = input.gameState.cardsData.getRandomMinionForTribe(reference_data_1.Race.PIRATE, (_a = input.boardWithDeadEntityHero.tavernTier) !== null && _a !== void 0 ? _a : 5);
15
15
  const spawned = (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cardToAdd, 1, input);
16
16
  spawnedEntities.push(...spawned);
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-tide-razor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-tide-razor.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,qEAAmE;AAEnE,+EAAiF;AAGpE,QAAA,mBAAmB,GAAyB;IACxD,OAAO,EAAE,sCAA0F;IACnG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,eAAe,GAAkB,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAClE,qBAAI,CAAC,MAAM,EACX,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,mCAAI,CAAC,CAC7C,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,4CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACjC,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACvG;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\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 TimewarpedTideRazor: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedTideRazor_BG34_Giant_328, CardIds.TimewarpedTideRazor_BG34_Giant_328_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedTideRazor_BG34_Giant_328_G ? 2 : 1;\r\n\t\tconst spawnedEntities: BoardEntity[] = [];\r\n\t\tfor (let i = 0; i < 3 * mult; i++) {\r\n\t\t\tconst cardToAdd = input.gameState.cardsData.getRandomMinionForTribe(\r\n\t\t\t\tRace.PIRATE,\r\n\t\t\t\tinput.boardWithDeadEntityHero.tavernTier ?? 5,\r\n\t\t\t);\r\n\t\t\tconst spawned = simplifiedSpawnEntities(cardToAdd, 1, input);\r\n\t\t\tspawnedEntities.push(...spawned);\r\n\t\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, [cardToAdd], input.gameState);\r\n\t\t}\r\n\t\treturn spawnedEntities;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-tide-razor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-tide-razor.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,qEAAmE;AAEnE,+EAAiF;AAGpE,QAAA,mBAAmB,GAAyB;IACxD,OAAO,EAAE,sCAA0F;IACnG,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAiD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,eAAe,GAAkB,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAClE,qBAAI,CAAC,MAAM,EACX,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,mCAAI,CAAC,CAC7C,CAAC;YACF,MAAM,OAAO,GAAG,IAAA,4CAAuB,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7D,eAAe,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACjC,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACvG;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\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 TimewarpedTideRazor: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedTideRazor_BG34_Giant_328, CardIds.TimewarpedTideRazor_BG34_Giant_328_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedTideRazor_BG34_Giant_328_G ? 2 : 1;\r\n\t\tconst spawnedEntities: BoardEntity[] = [];\r\n\t\tfor (let i = 0; i < 4 * mult; i++) {\r\n\t\t\tconst cardToAdd = input.gameState.cardsData.getRandomMinionForTribe(\r\n\t\t\t\tRace.PIRATE,\r\n\t\t\t\tinput.boardWithDeadEntityHero.tavernTier ?? 5,\r\n\t\t\t);\r\n\t\t\tconst spawned = simplifiedSpawnEntities(cardToAdd, 1, input);\r\n\t\t\tspawnedEntities.push(...spawned);\r\n\t\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, [cardToAdd], input.gameState);\r\n\t\t}\r\n\t\treturn spawnedEntities;\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { DefaultChargesCard, PlayedBloodGemsOnMeCard } from '../../card.interface';
2
- export declare const TimewarpedTwirler: PlayedBloodGemsOnMeCard & DefaultChargesCard;
1
+ import { PlayedBloodGemsOnMeCard } from '../../card.interface';
2
+ export declare const TimewarpedTwirler: PlayedBloodGemsOnMeCard;
@@ -1,33 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TimewarpedTwirler = void 0;
4
- const cast_tavern_spell_1 = require("../../../mechanics/cast-tavern-spell");
5
4
  exports.TimewarpedTwirler = {
6
5
  cardIds: ["BG34_Giant_105", "BG34_Giant_105_G"],
7
- defaultCharges: (entity) => 2,
8
6
  playedBloodGemsOnMe: (entity, input) => {
9
- var _a, _b;
10
- entity.memory = (_b = (_a = entity.memory) !== null && _a !== void 0 ? _a : entity.scriptDataNum1) !== null && _b !== void 0 ? _b : 0;
11
- entity.memory++;
12
- if (entity.abiityChargesLeft <= 0) {
13
- return;
14
- }
15
- if (entity.memory % 2 === 0) {
16
- entity.abiityChargesLeft--;
17
- const mult = entity.cardId === "BG34_Giant_105_G" ? 2 : 1;
18
- for (let i = 0; i < mult; i++) {
19
- (0, cast_tavern_spell_1.castTavernSpell)("BG34_689", {
20
- spellCardId: "BG34_689",
21
- source: input.hero,
22
- target: null,
23
- board: input.board,
24
- hero: input.hero,
25
- otherBoard: input.otherBoard,
26
- otherHero: input.otherHero,
27
- gameState: input.gameState,
28
- });
29
- }
30
- }
7
+ return;
31
8
  },
32
9
  };
33
10
  //# sourceMappingURL=timewarped-twirler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-twirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-twirler.ts"],"names":[],"mappings":";;;AACA,4EAAuE;AAK1D,QAAA,iBAAiB,GAAiD;IAC9E,OAAO,EAAE,sCAAsF;IAC/F,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,mBAAmB,EAAE,CAAC,MAAmB,EAAE,KAA+B,EAAE,EAAE;;QAC7E,MAAM,CAAC,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,MAAM,mCAAI,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,OAAO;SACP;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAA,mCAAe,cAAmC;oBACjD,WAAW,YAAkC;oBAC7C,MAAM,EAAE,KAAK,CAAC,IAAI;oBAClB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC1B,CAAC,CAAC;aACH;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { PlayedBloodGemsOnMeInput } from '../../../simulation/blood-gems';\r\nimport { DefaultChargesCard, PlayedBloodGemsOnMeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedTwirler: PlayedBloodGemsOnMeCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.TimewarpedTwirler_BG34_Giant_105, CardIds.TimewarpedTwirler_BG34_Giant_105_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 2,\r\n\tplayedBloodGemsOnMe: (entity: BoardEntity, input: PlayedBloodGemsOnMeInput) => {\r\n\t\tentity.memory = entity.memory ?? entity.scriptDataNum1 ?? 0;\r\n\t\tentity.memory++;\r\n\t\tif (entity.abiityChargesLeft <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (entity.memory % 2 === 0) {\r\n\t\t\tentity.abiityChargesLeft--;\r\n\t\t\tconst mult = entity.cardId === CardIds.TimewarpedTwirler_BG34_Giant_105_G ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tcastTavernSpell(CardIds.BloodGemBarrage_BG34_689, {\r\n\t\t\t\t\tspellCardId: CardIds.BloodGemBarrage_BG34_689,\r\n\t\t\t\t\tsource: input.hero,\r\n\t\t\t\t\ttarget: null,\r\n\t\t\t\t\tboard: input.board,\r\n\t\t\t\t\thero: input.hero,\r\n\t\t\t\t\totherBoard: input.otherBoard,\r\n\t\t\t\t\totherHero: input.otherHero,\r\n\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-twirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-twirler.ts"],"names":[],"mappings":";;;AAKa,QAAA,iBAAiB,GAA4B;IACzD,OAAO,EAAE,sCAAsF;IAC/F,mBAAmB,EAAE,CAAC,MAAmB,EAAE,KAA+B,EAAE,EAAE;QAG7E,OAAO;IAcR,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { PlayedBloodGemsOnMeInput } from '../../../simulation/blood-gems';\r\nimport { PlayedBloodGemsOnMeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedTwirler: PlayedBloodGemsOnMeCard = {\r\n\tcardIds: [CardIds.TimewarpedTwirler_BG34_Giant_105, CardIds.TimewarpedTwirler_BG34_Giant_105_G],\r\n\tplayedBloodGemsOnMe: (entity: BoardEntity, input: PlayedBloodGemsOnMeInput) => {\r\n\t\t// It only does something if the player plays a blood gem on this.\r\n\t\t// I'll implement it when I face an interaction that requires it\r\n\t\treturn;\r\n\t\t// const mult = entity.cardId === CardIds.TimewarpedTwirler_BG34_Giant_105_G ? 2 : 1;\r\n\t\t// for (let i = 0; i < mult; i++) {\r\n\t\t// \tcastTavernSpell(CardIds.BloodGemBarrage_BG34_689, {\r\n\t\t// \t\tspellCardId: CardIds.BloodGemBarrage_BG34_689,\r\n\t\t// \t\tsource: input.hero,\r\n\t\t// \t\ttarget: null,\r\n\t\t// \t\tboard: input.board,\r\n\t\t// \t\thero: input.hero,\r\n\t\t// \t\totherBoard: input.otherBoard,\r\n\t\t// \t\totherHero: input.otherHero,\r\n\t\t// \t\tgameState: input.gameState,\r\n\t\t// \t});\r\n\t\t// }\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { EndOfTurnCard } from '../../card.interface';
2
+ export declare const UtilityDrone: EndOfTurnCard;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UtilityDrone = void 0;
4
+ const magnetize_1 = require("../../../simulation/magnetize");
5
+ const stats_1 = require("../../../simulation/stats");
6
+ exports.UtilityDrone = {
7
+ cardIds: ["BG26_152", "BG26_152_G"],
8
+ endOfTurn: (minion, input) => {
9
+ const mult = minion.cardId === "BG26_152_G" ? 2 : 1;
10
+ for (const target of input.board) {
11
+ const magnetizations = (0, magnetize_1.getMagnetizations)(target, input.gameState);
12
+ if (magnetizations > 0) {
13
+ (0, stats_1.modifyStats)(target, minion, 3 * magnetizations * mult, 3 * magnetizations * mult, input.board, input.hero, input.gameState);
14
+ }
15
+ }
16
+ },
17
+ };
18
+ //# sourceMappingURL=utility-drone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility-drone.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/utility-drone.ts"],"names":[],"mappings":";;;AAEA,6DAAkE;AAClE,qDAAwD;AAG3C,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,0BAAgE;IACzE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,MAAM,cAAc,GAAG,IAAA,6BAAiB,EAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClE,IAAI,cAAc,GAAG,CAAC,EAAE;gBACvB,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,GAAG,cAAc,GAAG,IAAI,EACzB,CAAC,GAAG,cAAc,GAAG,IAAI,EACzB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getMagnetizations } from '../../../simulation/magnetize';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const UtilityDrone: EndOfTurnCard = {\r\n\tcardIds: [CardIds.UtilityDrone_BG26_152, CardIds.UtilityDrone_BG26_152_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.UtilityDrone_BG26_152_G ? 2 : 1;\r\n\t\tfor (const target of input.board) {\r\n\t\t\tconst magnetizations = getMagnetizations(target, input.gameState);\r\n\t\t\tif (magnetizations > 0) {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t3 * magnetizations * mult,\r\n\t\t\t\t\t3 * magnetizations * mult,\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ exports.WhirlingLassOMatic = {
6
6
  cardIds: ["BG28_635", "BG28_635_G"],
7
7
  rally: (minion, input) => {
8
8
  const numberOfCardsToAdd = input.attacker.cardId === "BG28_635_G" ? 2 : 1;
9
- const cardsToAdd = Array.from({ length: numberOfCardsToAdd }).map(() => null);
9
+ const cardsToAdd = Array.from({ length: numberOfCardsToAdd }).map(() => { var _a; return input.gameState.cardsData.getRandomTavernSpell({ maxTavernTier: (_a = input.attackingHero.tavernTier) !== null && _a !== void 0 ? _a : 6 }); });
10
10
  (0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);
11
11
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
12
12
  },
@@ -1 +1 @@
1
- {"version":3,"file":"whirling-lass-o-matic.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirling-lass-o-matic.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,kBAAkB,GAAc;IAC5C,OAAO,EAAE,0BAA4E;IACrF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirlingLassOMatic: RallyCard = {\r\n\tcardIds: [CardIds.WhirlingLassOMatic_BG28_635, CardIds.WhirlingLassOMatic_BG28_635_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst numberOfCardsToAdd = input.attacker.cardId === CardIds.WhirlingLassOMatic_BG28_635_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: numberOfCardsToAdd }).map(() => null);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whirling-lass-o-matic.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whirling-lass-o-matic.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,kBAAkB,GAAc;IAC5C,OAAO,EAAE,0BAA4E;IACrF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,kBAAkB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,WACtE,OAAA,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,mCAAI,CAAC,EAAE,CAAC,CAAA,EAAA,CACtG,CAAC;QACF,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhirlingLassOMatic: RallyCard = {\r\n\tcardIds: [CardIds.WhirlingLassOMatic_BG28_635, CardIds.WhirlingLassOMatic_BG28_635_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst numberOfCardsToAdd = input.attacker.cardId === CardIds.WhirlingLassOMatic_BG28_635_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array.from({ length: numberOfCardsToAdd }).map(() =>\r\n\t\t\tinput.gameState.cardsData.getRandomTavernSpell({ maxTavernTier: input.attackingHero.tavernTier ?? 6 }),\r\n\t\t);\r\n\t\taddCardsInHand(input.attackingHero, input.attackingBoard, cardsToAdd, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SepulchralSergeant = void 0;
4
- const utils_1 = require("../../../utils");
4
+ const stats_1 = require("../../../simulation/stats");
5
5
  exports.SepulchralSergeant = {
6
6
  cardIds: ["BG34_111", "BG34_111_G"],
7
7
  deathrattleSpawn: (minion, input) => {
8
8
  const mult = minion.cardId === "BG34_111_G" ? 2 : 1;
9
- const base = 1 + (minion.scriptDataNum1 || 1);
10
- const buff = base * mult;
11
- (0, utils_1.addStatsToAliveBoard)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, 0, buff, input.gameState);
9
+ const base = minion.scriptDataNum1 || 1 * mult;
10
+ const buff = base;
11
+ const targets = input.boardWithDeadEntity.filter((e) => e != minion && e.health > 0 && !e.definitelyDead);
12
+ for (const target of targets) {
13
+ (0, stats_1.modifyStats)(target, minion, 0, buff, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
14
+ }
12
15
  return [];
13
16
  },
14
17
  onStatsChanged: (minion, input) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sepulchral-sergent.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/sepulchral-sergent.ts"],"names":[],"mappings":";;;AAIA,0CAAsD;AAGzC,QAAA,kBAAkB,GAA8C;IAC5E,OAAO,EAAE,0BAA4E;IACrF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QACzB,IAAA,4BAAoB,EACnB,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,CAAC,EACD,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YACtD,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACzD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { addStatsToAliveBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard, OnStatsChangedCard } from '../../card.interface';\r\n\r\nexport const SepulchralSergeant: DeathrattleSpawnCard & OnStatsChangedCard = {\r\n\tcardIds: [CardIds.SepulchralSergeant_BG34_111, CardIds.SepulchralSergeant_BG34_111_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SepulchralSergeant_BG34_111_G ? 2 : 1;\r\n\t\t// Not sure about that +1\r\n\t\tconst base = 1 + (minion.scriptDataNum1 || 1);\r\n\t\tconst buff = base * mult;\r\n\t\taddStatsToAliveBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t0,\r\n\t\t\tbuff,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === minion && input.attackAmount > 0) {\r\n\t\t\tminion.scriptDataNum1 = (minion.scriptDataNum1 || 2) + 1;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"sepulchral-sergent.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/sepulchral-sergent.ts"],"names":[],"mappings":";;;AAGA,qDAA6E;AAGhE,QAAA,kBAAkB,GAA8C;IAC5E,OAAO,EAAE,0BAA4E;IACrF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,GAAG,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,IAAI,EACJ,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IACD,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE;YACtD,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACzD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats, OnStatsChangedInput } from '../../../simulation/stats';\r\nimport { DeathrattleSpawnCard, OnStatsChangedCard } from '../../card.interface';\r\n\r\nexport const SepulchralSergeant: DeathrattleSpawnCard & OnStatsChangedCard = {\r\n\tcardIds: [CardIds.SepulchralSergeant_BG34_111, CardIds.SepulchralSergeant_BG34_111_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SepulchralSergeant_BG34_111_G ? 2 : 1;\r\n\t\tconst base = minion.scriptDataNum1 || 1 * mult;\r\n\t\tconst buff = base;\r\n\t\tconst targets = input.boardWithDeadEntity.filter((e) => e != minion && e.health > 0 && !e.definitelyDead);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\t0,\r\n\t\t\t\tbuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n\tonStatsChanged: (minion: BoardEntity, input: OnStatsChangedInput) => {\r\n\t\tif (input.target === minion && input.attackAmount > 0) {\r\n\t\t\tminion.scriptDataNum1 = (minion.scriptDataNum1 || 2) + 1;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -4,6 +4,7 @@ import { BoardEntity } from '../board-entity';
4
4
  import { Mutable } from '../services/utils';
5
5
  import { FullGameState } from './internal-game-state';
6
6
  export declare const magnetizeToTarget: (inputTargets: BoardEntity[] | (() => BoardEntity[]), source: BoardEntity, cardsToMagnetize: string[] | ReferenceCard[], board: BoardEntity[], hero: BgsPlayerEntity, otherBoard: BoardEntity[], otherHero: BgsPlayerEntity, gameState: FullGameState) => void;
7
+ export declare const getMagnetizations: (entity: BoardEntity, gameState: FullGameState) => number;
7
8
  export interface OnBeforeMagnetizeInput {
8
9
  board: BoardEntity[];
9
10
  hero: BgsPlayerEntity;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.magnetizeToTarget = void 0;
3
+ exports.getMagnetizations = exports.magnetizeToTarget = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const card_interface_1 = require("../cards/card.interface");
6
6
  const _card_mappings_1 = require("../cards/impl/_card-mappings");
@@ -95,4 +95,8 @@ const magnetizeToTarget = (inputTargets, source, cardsToMagnetize, board, hero,
95
95
  }
96
96
  };
97
97
  exports.magnetizeToTarget = magnetizeToTarget;
98
+ const getMagnetizations = (entity, gameState) => {
99
+ return entity.enchantments.filter((e) => { var _a; return (_a = gameState.allCards.getCard(e.cardId).mechanics) === null || _a === void 0 ? void 0 : _a.includes(reference_data_1.GameTag[reference_data_1.GameTag.MODULAR]); }).length;
100
+ };
101
+ exports.getMagnetizations = getMagnetizations;
98
102
  //# sourceMappingURL=magnetize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"magnetize.js","sourceRoot":"","sources":["../../src/simulation/magnetize.ts"],"names":[],"mappings":"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","sourcesContent":["import { GameTag, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { hasOnAfterMagnetize, hasOnBeforeMagnetize, hasOnBeforeMagnetizeSelf } from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { Mutable } from '../services/utils';\r\nimport { buildSingleBoardEntity } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const magnetizeToTarget = (\r\n\tinputTargets: BoardEntity[] | (() => BoardEntity[]),\r\n\tsource: BoardEntity,\r\n\tcardsToMagnetize: string[] | ReferenceCard[],\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst electromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_BG30_MagicItem_709,\r\n\t).length;\r\n\tconst greaterElecromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_ElectromagneticDeviceToken_BG30_MagicItem_709t,\r\n\t).length;\r\n\r\n\tconst magnetMult = board.some((e) => e.cardId === CardIds.DoubleDemolisher_BG34_177_G)\r\n\t\t? 3\r\n\t\t: board.some((e) => e.cardId === CardIds.DoubleDemolisher_BG34_177)\r\n\t\t? 2\r\n\t\t: 1;\r\n\tfor (let i = 0; i < magnetMult; i++) {\r\n\t\tconst actualTargets = typeof inputTargets === 'function' ? inputTargets() : inputTargets;\r\n\t\tfor (const target of actualTargets) {\r\n\t\t\tfor (const cardToMagnetize of cardsToMagnetize) {\r\n\t\t\t\tconst modularCard =\r\n\t\t\t\t\ttypeof cardToMagnetize === 'string'\r\n\t\t\t\t\t\t? { ...gameState.allCards.getCard(cardToMagnetize) }\r\n\t\t\t\t\t\t: cardToMagnetize;\r\n\t\t\t\tconst modularBoardEntity = buildSingleBoardEntity(\r\n\t\t\t\t\tmodularCard.id,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\thero.friendly,\r\n\t\t\t\t\tgameState.sharedState.currentEntityId++,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tgameState.cardsData,\r\n\t\t\t\t\tgameState.sharedState,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treferenceCardToUse: modularCard,\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t\tconst onBeforeMagnetizeSelfImpl = cardMappings[modularBoardEntity.cardId];\r\n\t\t\t\tif (hasOnBeforeMagnetizeSelf(onBeforeMagnetizeSelfImpl)) {\r\n\t\t\t\t\tonBeforeMagnetizeSelfImpl.onBeforeMagnetizeSelf(modularBoardEntity, {\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (const boardEntity of board) {\r\n\t\t\t\t\tconst onBeforeMagnetizeImpl = cardMappings[boardEntity.cardId];\r\n\t\t\t\t\tif (hasOnBeforeMagnetize(onBeforeMagnetizeImpl)) {\r\n\t\t\t\t\t\tonBeforeMagnetizeImpl.onBeforeMagnetize(boardEntity, {\r\n\t\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\t\tmagnetizedCard: modularCard,\r\n\t\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tsource,\r\n\t\t\t\t\tmodularBoardEntity.attack + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\t\t\t\tmodularBoardEntity.health + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tgameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.taunt = target.taunt || modularCard.mechanics?.includes(GameTag[GameTag.TAUNT]);\r\n\t\t\t\ttarget.divineShield =\r\n\t\t\t\t\ttarget.divineShield || modularCard.mechanics?.includes(GameTag[GameTag.DIVINE_SHIELD]);\r\n\t\t\t\ttarget.poisonous = target.poisonous || modularCard.mechanics?.includes(GameTag[GameTag.POISONOUS]);\r\n\t\t\t\ttarget.venomous = target.venomous || modularCard.mechanics?.includes(GameTag[GameTag.VENOMOUS]);\r\n\t\t\t\ttarget.windfury = target.windfury || modularCard.mechanics?.includes(GameTag[GameTag.WINDFURY]);\r\n\t\t\t\ttarget.reborn = target.reborn || modularCard.mechanics?.includes(GameTag[GameTag.REBORN]);\r\n\t\t\t\ttarget.stealth = target.stealth || modularCard.mechanics?.includes(GameTag[GameTag.STEALTH]);\r\n\r\n\t\t\t\tconst magneticEnchantment = modularCard.enchantmentDbfId;\r\n\t\t\t\tif (magneticEnchantment) {\r\n\t\t\t\t\tconst enchantment = gameState.allCards.getCard(magneticEnchantment).id;\r\n\t\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\t\tcardId: enchantment,\r\n\t\t\t\t\t\toriginEntityId: modularCard.dbfId,\r\n\t\t\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (\r\n\t\t\t\t\t[CardIds.DrBoomsMonster_BG31_176, CardIds.DrBoomsMonster_BG31_176_G].includes(\r\n\t\t\t\t\t\tcardToMagnetize as CardIds,\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tconst mult = cardToMagnetize === CardIds.DrBoomsMonster_BG31_176 ? 1 : 2;\r\n\t\t\t\t\ttarget.attack += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\t\t\t\ttarget.health += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Dr Boom's Monster?\r\n\t\t\t\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame + 1;\r\n\t\t\t\tfor (const entity of board) {\r\n\t\t\t\t\tconst drBoomBases =\r\n\t\t\t\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176 ? 1 : 0) +\r\n\t\t\t\t\t\tentity.enchantments.filter(\r\n\t\t\t\t\t\t\t(e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176e,\r\n\t\t\t\t\t\t).length;\r\n\t\t\t\t\tconst drBoomGoldens =\r\n\t\t\t\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 1 : 0) +\r\n\t\t\t\t\t\tentity.enchantments.filter(\r\n\t\t\t\t\t\t\t(e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176_Ge,\r\n\t\t\t\t\t\t).length;\r\n\t\t\t\t\tentity.attack += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\t\t\t\tentity.health += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst onAfterMagnetizeImpl = cardMappings[modularCard.id];\r\n\t\t\t\tif (hasOnAfterMagnetize(onAfterMagnetizeImpl)) {\r\n\t\t\t\t\tonAfterMagnetizeImpl.onAfterMagnetize(target, {\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\totherHero: otherHero,\r\n\t\t\t\t\t\totherBoard: otherBoard,\r\n\t\t\t\t\t\tmagnetizedCard: modularCard,\r\n\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport interface OnBeforeMagnetizeInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\tmagnetizedCard: Mutable<ReferenceCard>;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n\r\nexport interface OnBeforeMagnetizeSelfInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n\r\nexport interface OnAfterMagnetizeInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\totherHero: BgsPlayerEntity;\r\n\totherBoard: BoardEntity[];\r\n\tmagnetizedCard: ReferenceCard;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n"]}
1
+ {"version":3,"file":"magnetize.js","sourceRoot":"","sources":["../../src/simulation/magnetize.ts"],"names":[],"mappings":"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","sourcesContent":["import { GameTag, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { hasOnAfterMagnetize, hasOnBeforeMagnetize, hasOnBeforeMagnetizeSelf } from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { Mutable } from '../services/utils';\r\nimport { buildSingleBoardEntity } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const magnetizeToTarget = (\r\n\tinputTargets: BoardEntity[] | (() => BoardEntity[]),\r\n\tsource: BoardEntity,\r\n\tcardsToMagnetize: string[] | ReferenceCard[],\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst electromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_BG30_MagicItem_709,\r\n\t).length;\r\n\tconst greaterElecromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_ElectromagneticDeviceToken_BG30_MagicItem_709t,\r\n\t).length;\r\n\r\n\tconst magnetMult = board.some((e) => e.cardId === CardIds.DoubleDemolisher_BG34_177_G)\r\n\t\t? 3\r\n\t\t: board.some((e) => e.cardId === CardIds.DoubleDemolisher_BG34_177)\r\n\t\t? 2\r\n\t\t: 1;\r\n\tfor (let i = 0; i < magnetMult; i++) {\r\n\t\tconst actualTargets = typeof inputTargets === 'function' ? inputTargets() : inputTargets;\r\n\t\tfor (const target of actualTargets) {\r\n\t\t\tfor (const cardToMagnetize of cardsToMagnetize) {\r\n\t\t\t\tconst modularCard =\r\n\t\t\t\t\ttypeof cardToMagnetize === 'string'\r\n\t\t\t\t\t\t? { ...gameState.allCards.getCard(cardToMagnetize) }\r\n\t\t\t\t\t\t: cardToMagnetize;\r\n\t\t\t\tconst modularBoardEntity = buildSingleBoardEntity(\r\n\t\t\t\t\tmodularCard.id,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\thero.friendly,\r\n\t\t\t\t\tgameState.sharedState.currentEntityId++,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tgameState.cardsData,\r\n\t\t\t\t\tgameState.sharedState,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\tnull,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\treferenceCardToUse: modularCard,\r\n\t\t\t\t\t},\r\n\t\t\t\t);\r\n\t\t\t\tconst onBeforeMagnetizeSelfImpl = cardMappings[modularBoardEntity.cardId];\r\n\t\t\t\tif (hasOnBeforeMagnetizeSelf(onBeforeMagnetizeSelfImpl)) {\r\n\t\t\t\t\tonBeforeMagnetizeSelfImpl.onBeforeMagnetizeSelf(modularBoardEntity, {\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (const boardEntity of board) {\r\n\t\t\t\t\tconst onBeforeMagnetizeImpl = cardMappings[boardEntity.cardId];\r\n\t\t\t\t\tif (hasOnBeforeMagnetize(onBeforeMagnetizeImpl)) {\r\n\t\t\t\t\t\tonBeforeMagnetizeImpl.onBeforeMagnetize(boardEntity, {\r\n\t\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\t\tmagnetizedCard: modularCard,\r\n\t\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tsource,\r\n\t\t\t\t\tmodularBoardEntity.attack + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\t\t\t\tmodularBoardEntity.health + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tgameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.taunt = target.taunt || modularCard.mechanics?.includes(GameTag[GameTag.TAUNT]);\r\n\t\t\t\ttarget.divineShield =\r\n\t\t\t\t\ttarget.divineShield || modularCard.mechanics?.includes(GameTag[GameTag.DIVINE_SHIELD]);\r\n\t\t\t\ttarget.poisonous = target.poisonous || modularCard.mechanics?.includes(GameTag[GameTag.POISONOUS]);\r\n\t\t\t\ttarget.venomous = target.venomous || modularCard.mechanics?.includes(GameTag[GameTag.VENOMOUS]);\r\n\t\t\t\ttarget.windfury = target.windfury || modularCard.mechanics?.includes(GameTag[GameTag.WINDFURY]);\r\n\t\t\t\ttarget.reborn = target.reborn || modularCard.mechanics?.includes(GameTag[GameTag.REBORN]);\r\n\t\t\t\ttarget.stealth = target.stealth || modularCard.mechanics?.includes(GameTag[GameTag.STEALTH]);\r\n\r\n\t\t\t\tconst magneticEnchantment = modularCard.enchantmentDbfId;\r\n\t\t\t\tif (magneticEnchantment) {\r\n\t\t\t\t\tconst enchantment = gameState.allCards.getCard(magneticEnchantment).id;\r\n\t\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\t\tcardId: enchantment,\r\n\t\t\t\t\t\toriginEntityId: modularCard.dbfId,\r\n\t\t\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (\r\n\t\t\t\t\t[CardIds.DrBoomsMonster_BG31_176, CardIds.DrBoomsMonster_BG31_176_G].includes(\r\n\t\t\t\t\t\tcardToMagnetize as CardIds,\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tconst mult = cardToMagnetize === CardIds.DrBoomsMonster_BG31_176 ? 1 : 2;\r\n\t\t\t\t\ttarget.attack += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\t\t\t\ttarget.health += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Dr Boom's Monster?\r\n\t\t\t\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame + 1;\r\n\t\t\t\tfor (const entity of board) {\r\n\t\t\t\t\tconst drBoomBases =\r\n\t\t\t\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176 ? 1 : 0) +\r\n\t\t\t\t\t\tentity.enchantments.filter(\r\n\t\t\t\t\t\t\t(e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176e,\r\n\t\t\t\t\t\t).length;\r\n\t\t\t\t\tconst drBoomGoldens =\r\n\t\t\t\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 1 : 0) +\r\n\t\t\t\t\t\tentity.enchantments.filter(\r\n\t\t\t\t\t\t\t(e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176_Ge,\r\n\t\t\t\t\t\t).length;\r\n\t\t\t\t\tentity.attack += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\t\t\t\tentity.health += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst onAfterMagnetizeImpl = cardMappings[modularCard.id];\r\n\t\t\t\tif (hasOnAfterMagnetize(onAfterMagnetizeImpl)) {\r\n\t\t\t\t\tonAfterMagnetizeImpl.onAfterMagnetize(target, {\r\n\t\t\t\t\t\tboard: board,\r\n\t\t\t\t\t\thero: hero,\r\n\t\t\t\t\t\totherHero: otherHero,\r\n\t\t\t\t\t\totherBoard: otherBoard,\r\n\t\t\t\t\t\tmagnetizedCard: modularCard,\r\n\t\t\t\t\t\tmagnetizeTarget: target,\r\n\t\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const getMagnetizations = (entity: BoardEntity, gameState: FullGameState) => {\r\n\treturn entity.enchantments.filter((e) =>\r\n\t\tgameState.allCards.getCard(e.cardId).mechanics?.includes(GameTag[GameTag.MODULAR]),\r\n\t).length;\r\n};\r\n\r\nexport interface OnBeforeMagnetizeInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\tmagnetizedCard: Mutable<ReferenceCard>;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n\r\nexport interface OnBeforeMagnetizeSelfInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n\r\nexport interface OnAfterMagnetizeInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\totherHero: BgsPlayerEntity;\r\n\totherBoard: BoardEntity[];\r\n\tmagnetizedCard: ReferenceCard;\r\n\tmagnetizeTarget: BoardEntity;\r\n\tgameState: FullGameState;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/simulate-bgs-battle",
3
- "version": "1.1.668",
3
+ "version": "1.1.670",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",