@firestone-hs/simulate-bgs-battle 1.1.698 → 1.1.699

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 (109) hide show
  1. package/dist/cards/card.interface.d.ts +1 -1
  2. package/dist/cards/card.interface.js.map +1 -1
  3. package/dist/cards/cards-data.js +2 -1
  4. package/dist/cards/cards-data.js.map +1 -1
  5. package/dist/cards/impl/_card-mappings.js +8 -32
  6. package/dist/cards/impl/_card-mappings.js.map +1 -1
  7. package/dist/cards/impl/bg-spell/conflagration.d.ts +2 -0
  8. package/dist/cards/impl/bg-spell/{conflagration-bg352.js → conflagration.js} +3 -3
  9. package/dist/cards/impl/bg-spell/conflagration.js.map +1 -0
  10. package/dist/cards/impl/minion/bristlemane-scrapsmith.js +3 -2
  11. package/dist/cards/impl/minion/bristlemane-scrapsmith.js.map +1 -1
  12. package/dist/cards/impl/minion/burgeoning-whelp.js +3 -12
  13. package/dist/cards/impl/minion/burgeoning-whelp.js.map +1 -1
  14. package/dist/cards/impl/minion/{bg352-chromadrake-pool.js → chromadrake-pool.js} +1 -1
  15. package/dist/cards/impl/minion/chromadrake-pool.js.map +1 -0
  16. package/dist/cards/impl/minion/draconic-warden.js +2 -2
  17. package/dist/cards/impl/minion/draconic-warden.js.map +1 -1
  18. package/dist/cards/impl/minion/incubation-researcher.js +2 -2
  19. package/dist/cards/impl/minion/incubation-researcher.js.map +1 -1
  20. package/dist/cards/impl/minion/living-azerite.js.map +1 -1
  21. package/dist/cards/impl/minion/silent-enforcer.js +6 -6
  22. package/dist/cards/impl/minion/silent-enforcer.js.map +1 -1
  23. package/dist/cards/impl/minion/sinrunner-blanchy.d.ts +0 -2
  24. package/dist/cards/impl/minion/sinrunner-blanchy.js +1 -4
  25. package/dist/cards/impl/minion/sinrunner-blanchy.js.map +1 -1
  26. package/dist/cards/impl/minion/stellar-freebooter.js +4 -1
  27. package/dist/cards/impl/minion/stellar-freebooter.js.map +1 -1
  28. package/dist/cards/impl/minion/stuntdrake.js +1 -1
  29. package/dist/cards/impl/minion/stuntdrake.js.map +1 -1
  30. package/dist/cards/impl/minion/timewarped-hag.d.ts +2 -2
  31. package/dist/cards/impl/minion/timewarped-hag.js +7 -5
  32. package/dist/cards/impl/minion/timewarped-hag.js.map +1 -1
  33. package/dist/cards/impl/trinket/bloodbound-earrings.js +6 -1
  34. package/dist/cards/impl/trinket/bloodbound-earrings.js.map +1 -1
  35. package/dist/cards/impl/trinket/bluegill-flippers.js +2 -0
  36. package/dist/cards/impl/trinket/bluegill-flippers.js.map +1 -1
  37. package/dist/cards/impl/trinket/lucky-tabby.d.ts +2 -0
  38. package/dist/cards/impl/trinket/lucky-tabby.js +20 -0
  39. package/dist/cards/impl/trinket/lucky-tabby.js.map +1 -0
  40. package/dist/cards/impl/trinket/scrapsmith-portrait.d.ts +2 -0
  41. package/dist/cards/impl/trinket/scrapsmith-portrait.js +21 -0
  42. package/dist/cards/impl/trinket/scrapsmith-portrait.js.map +1 -0
  43. package/dist/cards/impl/trinket/stegodon-portrait.js +1 -0
  44. package/dist/cards/impl/trinket/stegodon-portrait.js.map +1 -1
  45. package/dist/cards/impl/trinket/stormcoil-sticker.d.ts +2 -0
  46. package/dist/cards/impl/trinket/stormcoil-sticker.js +21 -0
  47. package/dist/cards/impl/trinket/stormcoil-sticker.js.map +1 -0
  48. package/dist/cards/impl/trinket/unholy-sanctum.js +0 -3
  49. package/dist/cards/impl/trinket/unholy-sanctum.js.map +1 -1
  50. package/dist/simulation/attack.d.ts +2 -0
  51. package/dist/simulation/attack.js.map +1 -1
  52. package/dist/simulation/death-effects.js +28 -38
  53. package/dist/simulation/death-effects.js.map +1 -1
  54. package/dist/simulation/deathrattle-effects.js +0 -13
  55. package/dist/simulation/deathrattle-effects.js.map +1 -1
  56. package/dist/simulation/global-info-helpers.d.ts +1 -0
  57. package/dist/simulation/global-info-helpers.js +13 -1
  58. package/dist/simulation/global-info-helpers.js.map +1 -1
  59. package/dist/simulation/start-of-combat/soc-action-processor.js +8 -1
  60. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  61. package/dist/simulation/stats.js +0 -1
  62. package/dist/simulation/stats.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/cards/impl/bg-spell/arcane-absorption-bg352.d.ts +0 -2
  65. package/dist/cards/impl/bg-spell/arcane-absorption-bg352.js +0 -7
  66. package/dist/cards/impl/bg-spell/arcane-absorption-bg352.js.map +0 -1
  67. package/dist/cards/impl/bg-spell/conflagration-bg352.d.ts +0 -2
  68. package/dist/cards/impl/bg-spell/conflagration-bg352.js.map +0 -1
  69. package/dist/cards/impl/minion/alert-alarmist.d.ts +0 -2
  70. package/dist/cards/impl/minion/alert-alarmist.js +0 -7
  71. package/dist/cards/impl/minion/alert-alarmist.js.map +0 -1
  72. package/dist/cards/impl/minion/ancestral-automaton.d.ts +0 -2
  73. package/dist/cards/impl/minion/ancestral-automaton.js +0 -7
  74. package/dist/cards/impl/minion/ancestral-automaton.js.map +0 -1
  75. package/dist/cards/impl/minion/balinda-stonehearth.d.ts +0 -2
  76. package/dist/cards/impl/minion/balinda-stonehearth.js +0 -7
  77. package/dist/cards/impl/minion/balinda-stonehearth.js.map +0 -1
  78. package/dist/cards/impl/minion/bg352-chromadrake-pool.js.map +0 -1
  79. package/dist/cards/impl/minion/demon-fodder.d.ts +0 -2
  80. package/dist/cards/impl/minion/demon-fodder.js +0 -7
  81. package/dist/cards/impl/minion/demon-fodder.js.map +0 -1
  82. package/dist/cards/impl/minion/egg-of-the-endtimes.d.ts +0 -2
  83. package/dist/cards/impl/minion/egg-of-the-endtimes.js +0 -7
  84. package/dist/cards/impl/minion/egg-of-the-endtimes.js.map +0 -1
  85. package/dist/cards/impl/minion/gluttonous-trogg.d.ts +0 -2
  86. package/dist/cards/impl/minion/gluttonous-trogg.js +0 -7
  87. package/dist/cards/impl/minion/gluttonous-trogg.js.map +0 -1
  88. package/dist/cards/impl/minion/hired-ritualist.d.ts +0 -2
  89. package/dist/cards/impl/minion/hired-ritualist.js +0 -7
  90. package/dist/cards/impl/minion/hired-ritualist.js.map +0 -1
  91. package/dist/cards/impl/minion/laboratory-assistant.d.ts +0 -2
  92. package/dist/cards/impl/minion/laboratory-assistant.js +0 -7
  93. package/dist/cards/impl/minion/laboratory-assistant.js.map +0 -1
  94. package/dist/cards/impl/minion/maelstrom-emergent.d.ts +0 -2
  95. package/dist/cards/impl/minion/maelstrom-emergent.js +0 -7
  96. package/dist/cards/impl/minion/maelstrom-emergent.js.map +0 -1
  97. package/dist/cards/impl/minion/old-soul.d.ts +0 -2
  98. package/dist/cards/impl/minion/old-soul.js +0 -7
  99. package/dist/cards/impl/minion/old-soul.js.map +0 -1
  100. package/dist/cards/impl/minion/proud-privateer.d.ts +0 -2
  101. package/dist/cards/impl/minion/proud-privateer.js +0 -7
  102. package/dist/cards/impl/minion/proud-privateer.js.map +0 -1
  103. package/dist/cards/impl/minion/twisted-wrathguard.d.ts +0 -2
  104. package/dist/cards/impl/minion/twisted-wrathguard.js +0 -7
  105. package/dist/cards/impl/minion/twisted-wrathguard.js.map +0 -1
  106. package/dist/cards/impl/trinket/tarecgosa-sticker.d.ts +0 -2
  107. package/dist/cards/impl/trinket/tarecgosa-sticker.js +0 -7
  108. package/dist/cards/impl/trinket/tarecgosa-sticker.js.map +0 -1
  109. /package/dist/cards/impl/minion/{bg352-chromadrake-pool.d.ts → chromadrake-pool.d.ts} +0 -0
@@ -11,12 +11,12 @@ exports.SilentEnforcer = {
11
11
  const friendlyMinionsAliveAtStart = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead);
12
12
  const opponentMinionsAliveAtStart = input.otherBoard.filter((e) => e.health > 0 && !e.definitelyDead);
13
13
  for (let i = 0; i < mult; i++) {
14
- const targets = [
15
- ...friendlyMinionsAliveAtStart.filter((e) => !(0, utils_1.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.DEMON, input.gameState.anomalies, input.gameState.allCards)),
16
- ...opponentMinionsAliveAtStart,
17
- ];
18
- input.gameState.spectator.registerPowerTargets(minion, targets, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoardHero);
19
- (0, attack_1.dealDamageToMinions)(targets, input.otherBoard, input.otherBoardHero, minion, 2, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
14
+ const friendlyTargets = friendlyMinionsAliveAtStart.filter((e) => !(0, utils_1.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.DEMON, input.gameState.anomalies, input.gameState.allCards));
15
+ input.gameState.spectator.registerPowerTargets(minion, friendlyTargets, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoardHero);
16
+ (0, attack_1.dealDamageToMinions)(friendlyTargets, input.boardWithDeadEntity, input.boardWithDeadEntityHero, minion, 2, input.otherBoard, input.otherBoardHero, input.gameState);
17
+ const enemyTargets = opponentMinionsAliveAtStart;
18
+ input.gameState.spectator.registerPowerTargets(minion, enemyTargets, input.otherBoard, input.otherBoardHero, input.otherBoardHero);
19
+ (0, attack_1.dealDamageToMinions)(enemyTargets, input.otherBoard, input.otherBoardHero, minion, 2, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
20
20
  }
21
21
  return [];
22
22
  },
@@ -1 +1 @@
1
- {"version":3,"file":"silent-enforcer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silent-enforcer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAAiE;AAEjE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,2BAA2B,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/G,MAAM,2BAA2B,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG;gBAEf,GAAG,2BAA2B,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAA,uBAAe,EACf,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF;gBAED,GAAG,2BAA2B;aAC9B,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAC7C,MAAM,EACN,OAAO,EACP,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,IAAA,4BAAmB,EAClB,OAAO,EACP,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,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 { dealDamageToMinions } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SilentEnforcer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SilentEnforcer_BG33_156, CardIds.SilentEnforcer_BG33_156_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.SilentEnforcer_BG33_156_G ? 2 : 1;\r\n\t\tconst friendlyMinionsAliveAtStart = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst opponentMinionsAliveAtStart = input.otherBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst targets = [\r\n\t\t\t\t// Friendly non-demons\r\n\t\t\t\t...friendlyMinionsAliveAtStart.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!hasCorrectTribe(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t\t// All opponent minions\r\n\t\t\t\t...opponentMinionsAliveAtStart,\r\n\t\t\t];\r\n\t\t\tinput.gameState.spectator.registerPowerTargets(\r\n\t\t\t\tminion,\r\n\t\t\t\ttargets,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t\tdealDamageToMinions(\r\n\t\t\t\ttargets,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tminion,\r\n\t\t\t\t2,\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};\r\n"]}
1
+ {"version":3,"file":"silent-enforcer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silent-enforcer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAAiE;AAEjE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,2BAA2B,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/G,MAAM,2BAA2B,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAE9B,MAAM,eAAe,GAAG,2BAA2B,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAA,uBAAe,EACf,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAC7C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,IAAA,4BAAmB,EAClB,eAAe,EACf,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,MAAM,EACN,CAAC,EACD,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YAGF,MAAM,YAAY,GAAG,2BAA2B,CAAC;YACjD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAC7C,MAAM,EACN,YAAY,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,IAAA,4BAAmB,EAClB,YAAY,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,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 { dealDamageToMinions } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SilentEnforcer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SilentEnforcer_BG33_156, CardIds.SilentEnforcer_BG33_156_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.SilentEnforcer_BG33_156_G ? 2 : 1;\r\n\t\tconst friendlyMinionsAliveAtStart = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst opponentMinionsAliveAtStart = input.otherBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t// Friendly non-demons\r\n\t\t\tconst friendlyTargets = friendlyMinionsAliveAtStart.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!hasCorrectTribe(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t),\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTargets(\r\n\t\t\t\tminion,\r\n\t\t\t\tfriendlyTargets,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t\tdealDamageToMinions(\r\n\t\t\t\tfriendlyTargets,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tminion,\r\n\t\t\t\t2,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\t// All opponent minions\r\n\t\t\tconst enemyTargets = opponentMinionsAliveAtStart;\r\n\t\t\tinput.gameState.spectator.registerPowerTargets(\r\n\t\t\t\tminion,\r\n\t\t\t\tenemyTargets,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t\tdealDamageToMinions(\r\n\t\t\t\tenemyTargets,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tminion,\r\n\t\t\t\t2,\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};\r\n"]}
@@ -1,5 +1,3 @@
1
1
  import { BoardEntity } from '../../../board-entity';
2
- import { Card } from '../../card.interface';
3
2
  export declare const buildSinrunnerBlanchyRebornEntity: (deadEntity: BoardEntity) => BoardEntity;
4
3
  export declare const isSinrunnerBlanchy: (cardId: string) => boolean;
5
- export declare const SinrunnerBlanchy: Card;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SinrunnerBlanchy = exports.isSinrunnerBlanchy = exports.buildSinrunnerBlanchyRebornEntity = void 0;
3
+ exports.isSinrunnerBlanchy = exports.buildSinrunnerBlanchyRebornEntity = void 0;
4
4
  const buildSinrunnerBlanchyRebornEntity = (deadEntity) => ({
5
5
  ...deadEntity,
6
6
  hasAttacked: undefined,
@@ -11,7 +11,4 @@ const buildSinrunnerBlanchyRebornEntity = (deadEntity) => ({
11
11
  exports.buildSinrunnerBlanchyRebornEntity = buildSinrunnerBlanchyRebornEntity;
12
12
  const isSinrunnerBlanchy = (cardId) => cardId === "BG24_005" || cardId === "BG24_005_G";
13
13
  exports.isSinrunnerBlanchy = isSinrunnerBlanchy;
14
- exports.SinrunnerBlanchy = {
15
- cardIds: ["BG24_005", "BG24_005_G"],
16
- };
17
14
  //# sourceMappingURL=sinrunner-blanchy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sinrunner-blanchy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sinrunner-blanchy.ts"],"names":[],"mappings":";;;AAKO,MAAM,iCAAiC,GAAG,CAAC,UAAuB,EAAe,EAAE,CAAC,CAAC;IAC3F,GAAG,UAAU;IACb,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,UAAU,CAAC,SAAS;IAC5B,YAAY,EAAE,UAAU,CAAC,eAAe;IACxC,MAAM,EAAE,KAAK;CACb,CAAC,CAAC;AANU,QAAA,iCAAiC,qCAM3C;AAEI,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAW,EAAE,CAC7D,MAAM,eAAsC,IAAI,MAAM,iBAAwC,CAAC;AADnF,QAAA,kBAAkB,sBACiE;AAEnF,QAAA,gBAAgB,GAAS;IACrC,OAAO,EAAE,0BAAwE;CACjF,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { Card } from '../../card.interface';\r\n\r\n/** Reborn with full stats and bonus keywords (enchantments stripped by spread + fresh entity). */\r\nexport const buildSinrunnerBlanchyRebornEntity = (deadEntity: BoardEntity): BoardEntity => ({\r\n\t...deadEntity,\r\n\thasAttacked: undefined,\r\n\thealth: deadEntity.maxHealth,\r\n\tdivineShield: deadEntity.hadDivineShield,\r\n\treborn: false,\r\n});\r\n\r\nexport const isSinrunnerBlanchy = (cardId: string): boolean =>\r\n\tcardId === CardIds.SinrunnerBlanchy_BG24_005 || cardId === CardIds.SinrunnerBlanchy_BG24_005_G;\r\n\r\nexport const SinrunnerBlanchy: Card = {\r\n\tcardIds: [CardIds.SinrunnerBlanchy_BG24_005, CardIds.SinrunnerBlanchy_BG24_005_G],\r\n};\r\n"]}
1
+ {"version":3,"file":"sinrunner-blanchy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sinrunner-blanchy.ts"],"names":[],"mappings":";;;AAIO,MAAM,iCAAiC,GAAG,CAAC,UAAuB,EAAe,EAAE,CAAC,CAAC;IAC3F,GAAG,UAAU;IACb,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,UAAU,CAAC,SAAS;IAC5B,YAAY,EAAE,UAAU,CAAC,eAAe;IACxC,MAAM,EAAE,KAAK;CACb,CAAC,CAAC;AANU,QAAA,iCAAiC,qCAM3C;AAEI,MAAM,kBAAkB,GAAG,CAAC,MAAc,EAAW,EAAE,CAC7D,MAAM,eAAsC,IAAI,MAAM,iBAAwC,CAAC;AADnF,QAAA,kBAAkB,sBACiE","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\n/** Reborn with full stats and bonus keywords (enchantments stripped by spread + fresh entity). */\r\nexport const buildSinrunnerBlanchyRebornEntity = (deadEntity: BoardEntity): BoardEntity => ({\r\n\t...deadEntity,\r\n\thasAttacked: undefined,\r\n\thealth: deadEntity.maxHealth,\r\n\tdivineShield: deadEntity.hadDivineShield,\r\n\treborn: false,\r\n});\r\n\r\nexport const isSinrunnerBlanchy = (cardId: string): boolean =>\r\n\tcardId === CardIds.SinrunnerBlanchy_BG24_005 || cardId === CardIds.SinrunnerBlanchy_BG24_005_G;\r\n"]}
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StellarFreebooter = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
4
5
  const utils_1 = require("../../../services/utils");
5
6
  const stats_1 = require("../../../simulation/stats");
7
+ const utils_2 = require("../../../utils");
6
8
  exports.StellarFreebooter = {
7
9
  cardIds: ["BG29_866", "BG29_866_G"],
8
10
  deathrattleSpawn: (minion, input) => {
9
11
  const loops = minion.cardId === "BG29_866_G" ? 2 : 1;
10
12
  for (let i = 0; i < loops; i++) {
11
- const target = (0, utils_1.pickRandomAlive)(input.boardWithDeadEntity.filter((e) => !exports.StellarFreebooter.cardIds.includes(e.cardId)));
13
+ const target = (0, utils_1.pickRandomAlive)(input.boardWithDeadEntity.filter((e) => !exports.StellarFreebooter.cardIds.includes(e.cardId) &&
14
+ (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)));
12
15
  if (!!target) {
13
16
  (0, stats_1.modifyStats)(target, minion, 0, minion.attack, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stellar-freebooter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stellar-freebooter.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAE1D,qDAAwD;AAG3C,QAAA,iBAAiB,GAAyB;IACtD,OAAO,EAAE,0BAA0E;IACnF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC7B,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,yBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CAAC,CACjG,CAAC;YACF,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const StellarFreebooter: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.StellarFreebooter_BG29_866, CardIds.StellarFreebooter_BG29_866_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.StellarFreebooter_BG29_866_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = pickRandomAlive(\r\n\t\t\t\tinput.boardWithDeadEntity.filter((e) => !StellarFreebooter.cardIds.includes(e.cardId as CardIds)),\r\n\t\t\t);\r\n\t\t\tif (!!target) {\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\t0,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stellar-freebooter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stellar-freebooter.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAA0D;AAE1D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,iBAAiB,GAAyB;IACtD,OAAO,EAAE,0BAA0E;IACnF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC7B,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAC/B,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,yBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC;gBACxD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CACD,CAAC;YACF,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,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 { pickRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const StellarFreebooter: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.StellarFreebooter_BG29_866, CardIds.StellarFreebooter_BG29_866_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.StellarFreebooter_BG29_866_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = pickRandomAlive(\r\n\t\t\t\tinput.boardWithDeadEntity.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!StellarFreebooter.cardIds.includes(e.cardId as CardIds) &&\r\n\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tRace.PIRATE,\r\n\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t);\r\n\t\t\tif (!!target) {\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\t0,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -12,7 +12,7 @@ exports.Stuntdrake = {
12
12
  const picked = [];
13
13
  for (let j = 0; j < 2; j++) {
14
14
  const possibleTargets = input.board.filter((e) => !exports.Stuntdrake.cardIds.includes(e.cardId) && !picked.includes(e));
15
- const target = (0, utils_1.pickRandom)(possibleTargets);
15
+ const target = (0, utils_1.pickRandom)(possibleTargets, minion);
16
16
  if (!!target) {
17
17
  (0, stats_1.modifyStats)(target, minion, minion.attack, 0, input.board, input.hero, input.gameState);
18
18
  picked.push(target);
@@ -1 +1 @@
1
- {"version":3,"file":"stuntdrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stuntdrake.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,qDAAwD;AAG3C,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,0BAA4D;IACrE,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpE,CAAC;gBACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,MAAM,EAAE;oBACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACpB;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Stuntdrake: AvengeCard = {\r\n\tcardIds: [CardIds.Stuntdrake_BG34_732, CardIds.Stuntdrake_BG34_732_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.Stuntdrake_BG34_732_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst picked: BoardEntity[] = [];\r\n\t\t\tfor (let j = 0; j < 2; j++) {\r\n\t\t\t\tconst possibleTargets = input.board.filter(\r\n\t\t\t\t\t(e) => !Stuntdrake.cardIds.includes(e.cardId) && !picked.includes(e),\r\n\t\t\t\t);\r\n\t\t\t\tconst target = pickRandom(possibleTargets);\r\n\t\t\t\tif (!!target) {\r\n\t\t\t\t\tmodifyStats(target, minion, minion.attack, 0, input.board, input.hero, input.gameState);\r\n\t\t\t\t\tpicked.push(target);\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":"stuntdrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stuntdrake.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,qDAAwD;AAG3C,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,0BAA4D;IACrE,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpE,CAAC;gBACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACnD,IAAI,CAAC,CAAC,MAAM,EAAE;oBACb,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBACxF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACpB;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Stuntdrake: AvengeCard = {\r\n\tcardIds: [CardIds.Stuntdrake_BG34_732, CardIds.Stuntdrake_BG34_732_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.Stuntdrake_BG34_732_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst picked: BoardEntity[] = [];\r\n\t\t\tfor (let j = 0; j < 2; j++) {\r\n\t\t\t\tconst possibleTargets = input.board.filter(\r\n\t\t\t\t\t(e) => !Stuntdrake.cardIds.includes(e.cardId) && !picked.includes(e),\r\n\t\t\t\t);\r\n\t\t\t\tconst target = pickRandom(possibleTargets, minion);\r\n\t\t\t\tif (!!target) {\r\n\t\t\t\t\tmodifyStats(target, minion, minion.attack, 0, input.board, input.hero, input.gameState);\r\n\t\t\t\t\tpicked.push(target);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { OnDamagedCard } from '../../card.interface';
2
- export declare const TimewarpedHag: OnDamagedCard;
1
+ import { StartOfCombatCard } from '../../card.interface';
2
+ export declare const TimewarpedHag: StartOfCombatCard;
@@ -7,16 +7,17 @@ const attack_1 = require("../../../simulation/attack");
7
7
  const utils_1 = require("../../../utils");
8
8
  exports.TimewarpedHag = {
9
9
  cardIds: ["BG34_Giant_342", "BG34_Giant_342_G"],
10
- onDamaged: (minion, input) => {
11
- const neighbours = (0, attack_1.getNeighbours)(input.board, minion, null, true);
10
+ startOfCombatTiming: 'start-of-combat',
11
+ startOfCombat: (minion, input) => {
12
+ const neighbours = (0, attack_1.getNeighbours)(input.playerBoard, minion, null, true);
12
13
  if (neighbours.length !== 2) {
13
- console.warn('TimewarpedHag: neighbours.length !== 2', (0, utils_1.stringifySimple)(input.board, input.gameState.allCards));
14
+ console.warn('TimewarpedHag: neighbours.length !== 2', (0, utils_1.stringifySimple)(input.playerBoard, input.gameState.allCards));
14
15
  }
15
16
  const targets = minion.cardId === "BG34_Giant_342_G" ? neighbours : [neighbours[1]];
16
17
  for (const target of targets) {
17
18
  if (!!target &&
18
- (0, utils_1.hasCorrectTribe)(target, input.hero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)) {
19
- (0, reborn_1.updateReborn)(target, true, input.board, input.hero, input.otherHero, input.gameState);
19
+ (0, utils_1.hasCorrectTribe)(target, input.playerEntity, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)) {
20
+ (0, reborn_1.updateReborn)(target, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
20
21
  target.enchantments.push({
21
22
  cardId: "BG31_HERO_801ptje",
22
23
  originEntityId: minion.entityId,
@@ -25,6 +26,7 @@ exports.TimewarpedHag = {
25
26
  });
26
27
  }
27
28
  }
29
+ return true;
28
30
  },
29
31
  };
30
32
  //# sourceMappingURL=timewarped-hag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-hag.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-hag.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AAExD,uDAA2D;AAC3D,0CAAkE;AAGrD,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,sCAA8E;IACvF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,CAAC,IAAI,CACX,wCAAwC,EACxC,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACtD,CAAC;SACF;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,uBAA2C,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IACC,CAAC,CAAC,MAAM;gBACR,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EACpG;gBACD,IAAA,qBAAY,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;oBACxB,MAAM,qBAAoE;oBAC1E,cAAc,EAAE,MAAM,CAAC,QAAQ;oBAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC,CAAC;aACH;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { hasCorrectTribe, stringifySimple } from '../../../utils';\r\nimport { OnDamagedCard, OnDamagedInput } from '../../card.interface';\r\n\r\nexport const TimewarpedHag: OnDamagedCard = {\r\n\tcardIds: [CardIds.TimewarpedHag_BG34_Giant_342, CardIds.TimewarpedHag_BG34_Giant_342_G],\r\n\tonDamaged: (minion: BoardEntity, input: OnDamagedInput) => {\r\n\t\tconst neighbours = getNeighbours(input.board, minion, null, true);\r\n\t\tif (neighbours.length !== 2) {\r\n\t\t\tconsole.warn(\r\n\t\t\t\t'TimewarpedHag: neighbours.length !== 2',\r\n\t\t\t\tstringifySimple(input.board, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst targets = minion.cardId === CardIds.TimewarpedHag_BG34_Giant_342_G ? neighbours : [neighbours[1]];\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (\r\n\t\t\t\t!!target &&\r\n\t\t\t\thasCorrectTribe(target, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t\t) {\r\n\t\t\t\tupdateReborn(target, true, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.UltraCapacitor_UltraCapacitorEnchantment_BG31_HERO_801ptje,\r\n\t\t\t\t\toriginEntityId: minion.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 1,\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-hag.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-hag.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AAExD,uDAA2D;AAE3D,0CAAkE;AAGrD,QAAA,aAAa,GAAsB;IAC/C,OAAO,EAAE,sCAA8E;IACvF,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,CAAC,IAAI,CACX,wCAAwC,EACxC,IAAA,uBAAe,EAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC5D,CAAC;SACF;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,uBAA2C,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IACC,CAAC,CAAC,MAAM;gBACR,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,YAAY,EAClB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;oBACxB,MAAM,qBAAoE;oBAC1E,cAAc,EAAE,MAAM,CAAC,QAAQ;oBAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC,CAAC;aACH;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe, stringifySimple } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedHag: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedHag_BG34_Giant_342, CardIds.TimewarpedHag_BG34_Giant_342_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst neighbours = getNeighbours(input.playerBoard, minion, null, true);\r\n\t\tif (neighbours.length !== 2) {\r\n\t\t\tconsole.warn(\r\n\t\t\t\t'TimewarpedHag: neighbours.length !== 2',\r\n\t\t\t\tstringifySimple(input.playerBoard, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst targets = minion.cardId === CardIds.TimewarpedHag_BG34_Giant_342_G ? neighbours : [neighbours[1]];\r\n\t\tfor (const target of targets) {\r\n\t\t\tif (\r\n\t\t\t\t!!target &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tRace.UNDEAD,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.UltraCapacitor_UltraCapacitorEnchantment_BG31_HERO_801ptje,\r\n\t\t\t\t\toriginEntityId: minion.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 1,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -3,9 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BloodboundEarrings = void 0;
4
4
  const blood_gems_1 = require("../../../simulation/blood-gems");
5
5
  exports.BloodboundEarrings = {
6
- cardIds: ["BG32_MagicItem_808", "BG32_MagicItem_808t"],
6
+ cardIds: [
7
+ "BG32_MagicItem_808",
8
+ "BG32_MagicItem_808t",
9
+ ],
7
10
  afterTavernSpellCast: (trinket, input) => {
8
11
  var _a;
12
+ if (input.source !== input.hero)
13
+ return;
9
14
  trinket.scriptDataNum1 = ((_a = trinket.scriptDataNum1) !== null && _a !== void 0 ? _a : 5) - 1;
10
15
  if (trinket.scriptDataNum1 <= 0) {
11
16
  trinket.scriptDataNum1 = 5;
@@ -1 +1 @@
1
- {"version":3,"file":"bloodbound-earrings.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bloodbound-earrings.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAGpD,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,6CAAuH;IAChI,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,0BAA2E,CAAC;YAC7G,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;gBACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;oBAAE,SAAS;gBAC1D,IAAA,4BAAe,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { playBloodGemsOn } from '../../../simulation/blood-gems';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const BloodboundEarrings: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BloodboundEarrings_BG32_MagicItem_808, CardIds.BloodboundEarrings_BloodboundEarringsToken_BG32_MagicItem_808t],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 ?? 5) - 1;\r\n\t\tif (trinket.scriptDataNum1 <= 0) {\r\n\t\t\ttrinket.scriptDataNum1 = 5;\r\n\t\t\tconst isUpgraded = trinket.cardId === CardIds.BloodboundEarrings_BloodboundEarringsToken_BG32_MagicItem_808t;\r\n\t\t\tconst gemsPerMinion = isUpgraded ? 2 : 1;\r\n\t\t\tfor (const entity of input.board) {\r\n\t\t\t\tif (entity.health <= 0 || entity.definitelyDead) continue;\r\n\t\t\t\tplayBloodGemsOn(\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tgemsPerMinion,\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherHero,\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"]}
1
+ {"version":3,"file":"bloodbound-earrings.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bloodbound-earrings.ts"],"names":[],"mappings":";;;AAEA,+DAAiE;AAGpD,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE;;;KAGR;IACD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO;QAExC,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GACf,OAAO,CAAC,MAAM,0BAA2E,CAAC;YAC3F,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;gBACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;oBAAE,SAAS;gBAC1D,IAAA,4BAAe,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { playBloodGemsOn } from '../../../simulation/blood-gems';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const BloodboundEarrings: AfterTavernSpellCastCard = {\r\n\tcardIds: [\r\n\t\tCardIds.BloodboundEarrings_BG32_MagicItem_808,\r\n\t\tCardIds.BloodboundEarrings_BloodboundEarringsToken_BG32_MagicItem_808t,\r\n\t],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) return;\r\n\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 ?? 5) - 1;\r\n\t\tif (trinket.scriptDataNum1 <= 0) {\r\n\t\t\ttrinket.scriptDataNum1 = 5;\r\n\t\t\tconst isUpgraded =\r\n\t\t\t\ttrinket.cardId === CardIds.BloodboundEarrings_BloodboundEarringsToken_BG32_MagicItem_808t;\r\n\t\t\tconst gemsPerMinion = isUpgraded ? 2 : 1;\r\n\t\t\tfor (const entity of input.board) {\r\n\t\t\t\tif (entity.health <= 0 || entity.definitelyDead) continue;\r\n\t\t\t\tplayBloodGemsOn(\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tgemsPerMinion,\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherHero,\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"]}
@@ -5,6 +5,8 @@ exports.BluegillFlippers = {
5
5
  cardIds: ["BG32_MagicItem_893"],
6
6
  afterTavernSpellCast: (trinket, input) => {
7
7
  var _a, _b, _c, _d, _e;
8
+ if (input.source !== input.hero)
9
+ return;
8
10
  const hand = (_a = input.hero.hand) !== null && _a !== void 0 ? _a : [];
9
11
  if (hand.length > 0) {
10
12
  const leftMost = hand[0];
@@ -1 +1 @@
1
- {"version":3,"file":"bluegill-flippers.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bluegill-flippers.ts"],"names":[],"mappings":";;;AAKa,QAAA,gBAAgB,GAA6B;IACzD,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,QAAQ,EAAE;gBACb,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,IAAI,EAAE;oBAC5B,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/D,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC/D;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const BluegillFlippers: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BluegillFlippers_BG32_MagicItem_893],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tconst hand = input.hero.hand ?? [];\r\n\t\tif (hand.length > 0) {\r\n\t\t\tconst leftMost = hand[0];\r\n\t\t\tif (leftMost) {\r\n\t\t\t\tconst refCard = input.gameState.allCards.getCard(leftMost.cardId);\r\n\t\t\t\tif (refCard?.attack != null) {\r\n\t\t\t\t\tleftMost.attack = (leftMost.attack ?? refCard.attack ?? 0) + 3;\r\n\t\t\t\t\tleftMost.health = (leftMost.health ?? refCard.health ?? 0) + 3;\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":"bluegill-flippers.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bluegill-flippers.ts"],"names":[],"mappings":";;;AAIa,QAAA,gBAAgB,GAA6B;IACzD,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO;QAExC,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,QAAQ,EAAE;gBACb,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,IAAI,EAAE;oBAC5B,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/D,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC/D;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const BluegillFlippers: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BluegillFlippers_BG32_MagicItem_893],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) return;\r\n\r\n\t\tconst hand = input.hero.hand ?? [];\r\n\t\tif (hand.length > 0) {\r\n\t\t\tconst leftMost = hand[0];\r\n\t\t\tif (leftMost) {\r\n\t\t\t\tconst refCard = input.gameState.allCards.getCard(leftMost.cardId);\r\n\t\t\t\tif (refCard?.attack != null) {\r\n\t\t\t\t\tleftMost.attack = (leftMost.attack ?? refCard.attack ?? 0) + 3;\r\n\t\t\t\t\tleftMost.health = (leftMost.health ?? refCard.health ?? 0) + 3;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnAfterFriendlyMinionDeathCard } from '../../card.interface';
2
+ export declare const LuckyTabby: OnAfterFriendlyMinionDeathCard;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LuckyTabby = void 0;
4
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
+ const utils_1 = require("../../../services/utils");
6
+ exports.LuckyTabby = {
7
+ cardIds: ["BG30_MagicItem_931"],
8
+ onAfterFriendlyMinionDeath: (listener, input) => {
9
+ const trinket = listener;
10
+ if (!trinket.scriptDataNum1) {
11
+ trinket.scriptDataNum1 = 6;
12
+ }
13
+ trinket.scriptDataNum1--;
14
+ if (trinket.scriptDataNum1 === 0) {
15
+ const randomBeast = (0, utils_1.pickRandom)(input.gameState.cardsData.beastSpawns);
16
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, [randomBeast], input.gameState);
17
+ }
18
+ },
19
+ };
20
+ //# sourceMappingURL=lucky-tabby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucky-tabby.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/lucky-tabby.ts"],"names":[],"mappings":";;;AAIA,qEAAmE;AACnE,mDAAqD;AAGxC,QAAA,UAAU,GAAmC;IACzD,OAAO,EAAE,sBAAuC;IAChD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC5B,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;SAC3B;QACD,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,EAAE;YACjC,MAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtE,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const LuckyTabby: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.LuckyTabby_BG30_MagicItem_931],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\tif (!trinket.scriptDataNum1) {\r\n\t\t\ttrinket.scriptDataNum1 = 6;\r\n\t\t}\r\n\t\ttrinket.scriptDataNum1--;\r\n\t\tif (trinket.scriptDataNum1 === 0) {\r\n\t\t\tconst randomBeast = pickRandom(input.gameState.cardsData.beastSpawns);\r\n\t\t\taddCardsInHand(input.hero, input.board, [randomBeast], input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnAfterFriendlyMinionDeathCard } from '../../card.interface';
2
+ export declare const ScrapsmithPortrait: OnAfterFriendlyMinionDeathCard;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScrapsmithPortrait = void 0;
4
+ const blood_gems_1 = require("../../../simulation/blood-gems");
5
+ exports.ScrapsmithPortrait = {
6
+ cardIds: ["BG35_MagicItem_430"],
7
+ onAfterFriendlyMinionDeath: (listener, input) => {
8
+ const trinket = listener;
9
+ if (!input.deadEntity.taunt) {
10
+ return;
11
+ }
12
+ const scrapsmiths = input.board.filter((e) => e.health > 0 &&
13
+ !e.definitelyDead &&
14
+ (e.cardId === "BG24_707" ||
15
+ e.cardId === "BG24_707_G"));
16
+ for (const scrapsmith of scrapsmiths) {
17
+ (0, blood_gems_1.playBloodGemsOn)(trinket, scrapsmith, 1, input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=scrapsmith-portrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrapsmith-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/scrapsmith-portrait.ts"],"names":[],"mappings":";;;AAIA,+DAAiE;AAGpD,QAAA,kBAAkB,GAAmC;IACjE,OAAO,EAAE,sBAA+C;IACxD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;YAC5B,OAAO;SACP;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,cAAc;YACjB,CAAC,CAAC,CAAC,MAAM,eAA2C;gBACnD,CAAC,CAAC,MAAM,iBAA6C,CAAC,CACxD,CAAC;QACF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACrC,IAAA,4BAAe,EACd,OAAO,EACP,UAAU,EACV,CAAC,EACD,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { playBloodGemsOn } from '../../../simulation/blood-gems';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const ScrapsmithPortrait: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.ScrapsmithPortrait_BG35_MagicItem_430],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\tif (!input.deadEntity.taunt) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst scrapsmiths = input.board.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te.health > 0 &&\r\n\t\t\t\t!e.definitelyDead &&\r\n\t\t\t\t(e.cardId === CardIds.BristlemaneScrapsmith_BG24_707 ||\r\n\t\t\t\t\te.cardId === CardIds.BristlemaneScrapsmith_BG24_707_G),\r\n\t\t);\r\n\t\tfor (const scrapsmith of scrapsmiths) {\r\n\t\t\tplayBloodGemsOn(\r\n\t\t\t\ttrinket,\r\n\t\t\t\tscrapsmith,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -6,6 +6,7 @@ const divine_shield_1 = require("../../../keywords/divine-shield");
6
6
  const utils_1 = require("../../../utils");
7
7
  exports.StegodonPortrait = {
8
8
  cardIds: ["BG35_MagicItem_702"],
9
+ startOfCombatTiming: 'start-of-combat',
9
10
  startOfCombat: (trinket, input) => {
10
11
  const beasts = input.playerBoard.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
11
12
  let triggered = false;
@@ -1 +1 @@
1
- {"version":3,"file":"stegodon-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/stegodon-portrait.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,gBAAgB,GAAsB;IAClD,OAAO,EAAE,sBAA6C;IACtD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9G,CAAC;QACF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAA,kCAAkB,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClH,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StegodonPortrait: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StegodonPortrait_BG35_MagicItem_702],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst beasts = input.playerBoard.filter(\r\n\t\t\t(e) => hasCorrectTribe(e, input.playerEntity, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tlet triggered = false;\r\n\t\tfor (let i = 0; i < 2 && i < beasts.length; i++) {\r\n\t\t\tupdateDivineShield(beasts[i], input.playerBoard, input.playerEntity, input.opponentEntity, true, input.gameState);\r\n\t\t\ttriggered = true;\r\n\t\t}\r\n\t\treturn { hasTriggered: triggered, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stegodon-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/stegodon-portrait.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mEAAqE;AAGrE,0CAAiD;AAGpC,QAAA,gBAAgB,GAAsB;IAClD,OAAO,EAAE,sBAA6C;IACtD,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACvG,CAAC;QACF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAA,kCAAkB,EACjB,MAAM,CAAC,CAAC,CAAC,EACT,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;YACF,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StegodonPortrait: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StegodonPortrait_BG35_MagicItem_702],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst beasts = input.playerBoard.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.playerEntity, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tlet triggered = false;\r\n\t\tfor (let i = 0; i < 2 && i < beasts.length; i++) {\r\n\t\t\tupdateDivineShield(\r\n\t\t\t\tbeasts[i],\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\ttrue,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\ttriggered = true;\r\n\t\t}\r\n\t\treturn { hasTriggered: triggered, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnAfterFriendlyMinionDeathCard } from '../../card.interface';
2
+ export declare const StormcoilSticker: OnAfterFriendlyMinionDeathCard;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StormcoilSticker = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
+ exports.StormcoilSticker = {
7
+ cardIds: ["BG35_MagicItem_302"],
8
+ onAfterFriendlyMinionDeath: (listener, input) => {
9
+ var _a;
10
+ const trinket = listener;
11
+ trinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;
12
+ if (trinket.scriptDataNum1 >= 7) {
13
+ trinket.scriptDataNum1 = 0;
14
+ const randomMech = input.gameState.cardsData.getRandomMinionForTribe(reference_data_1.Race.MECH, (_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 6, []);
15
+ if (randomMech) {
16
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, [randomMech], input.gameState);
17
+ }
18
+ }
19
+ },
20
+ };
21
+ //# sourceMappingURL=stormcoil-sticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stormcoil-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/stormcoil-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qEAAmE;AAGtD,QAAA,gBAAgB,GAAmC;IAC/D,OAAO,EAAE,sBAA6C;IACtD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CACnE,qBAAI,CAAC,IAAI,EACT,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,EAC1B,EAAE,CACF,CAAC;YACF,IAAI,UAAU,EAAE;gBACf,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvE;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const StormcoilSticker: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.StormcoilSticker_BG35_MagicItem_302],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;\r\n\t\tif (trinket.scriptDataNum1 >= 7) {\r\n\t\t\ttrinket.scriptDataNum1 = 0;\r\n\t\t\tconst randomMech = input.gameState.cardsData.getRandomMinionForTribe(\r\n\t\t\t\tRace.MECH,\r\n\t\t\t\tinput.hero.tavernTier ?? 6,\r\n\t\t\t\t[],\r\n\t\t\t);\r\n\t\t\tif (randomMech) {\r\n\t\t\t\taddCardsInHand(input.hero, input.board, [randomMech], input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -8,9 +8,6 @@ exports.UnholySanctum = {
8
8
  const target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];
9
9
  if (!!target) {
10
10
  (0, stats_1.modifyStats)(target, trinket, trinket.cardId === "BG32_MagicItem_862" ? 3 : 6, trinket.cardId === "BG32_MagicItem_862" ? 2 : 4, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
11
- const afterMod = target.attack;
12
- if (afterMod > 10) {
13
- }
14
11
  }
15
12
  },
16
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,EAAE;aAElB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\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 UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 4,\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\tconst afterMod = target.attack;\r\n\t\t\tif (afterMod > 10) {\r\n\t\t\t\t// Nothing\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-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 UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 4,\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},\r\n};\r\n"]}
@@ -35,6 +35,8 @@ export interface OnAfterFriendlyMinionDeathInput {
35
35
  readonly deadEntity: BoardEntity;
36
36
  readonly board: BoardEntity[];
37
37
  readonly hero: BgsPlayerEntity;
38
+ readonly otherBoard: BoardEntity[];
39
+ readonly otherHero: BgsPlayerEntity;
38
40
  readonly gameState: FullGameState;
39
41
  }
40
42
  export interface OnMinionKilledInput {