@firestone-hs/simulate-bgs-battle 1.1.661 → 1.1.663

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 (37) hide show
  1. package/dist/board-entity.d.ts +1 -0
  2. package/dist/board-entity.js.map +1 -1
  3. package/dist/cards/impl/minion/apexis-guardian.js +10 -12
  4. package/dist/cards/impl/minion/apexis-guardian.js.map +1 -1
  5. package/dist/cards/impl/minion/bluesy-siren.d.ts +2 -2
  6. package/dist/cards/impl/minion/bluesy-siren.js +24 -18
  7. package/dist/cards/impl/minion/bluesy-siren.js.map +1 -1
  8. package/dist/cards/impl/minion/clunker-junker.js +1 -1
  9. package/dist/cards/impl/minion/clunker-junker.js.map +1 -1
  10. package/dist/cards/impl/minion/dramaloc.js +7 -6
  11. package/dist/cards/impl/minion/dramaloc.js.map +1 -1
  12. package/dist/cards/impl/minion/impulsive-trickster.js +13 -5
  13. package/dist/cards/impl/minion/impulsive-trickster.js.map +1 -1
  14. package/dist/cards/impl/minion/pilot-the-shredder.js +3 -1
  15. package/dist/cards/impl/minion/pilot-the-shredder.js.map +1 -1
  16. package/dist/cards/impl/minion/rickety-repairbot.js +1 -1
  17. package/dist/cards/impl/minion/rickety-repairbot.js.map +1 -1
  18. package/dist/cards/impl/minion/spellbound-soul.js +2 -2
  19. package/dist/cards/impl/minion/spellbound-soul.js.map +1 -1
  20. package/dist/cards/impl/minion/timewarped-electron.js +1 -1
  21. package/dist/cards/impl/minion/timewarped-electron.js.map +1 -1
  22. package/dist/cards/impl/minion/timewarped-nellies-ship.js +4 -4
  23. package/dist/cards/impl/minion/timewarped-nellies-ship.js.map +1 -1
  24. package/dist/cards/impl/minion/timewarped-promo-drake.js +1 -1
  25. package/dist/cards/impl/minion/timewarped-promo-drake.js.map +1 -1
  26. package/dist/cards/impl/minion/whelp-watcher.js +4 -1
  27. package/dist/cards/impl/minion/whelp-watcher.js.map +1 -1
  28. package/dist/cards/impl/trinket/sepulchral-sergent.js +4 -2
  29. package/dist/cards/impl/trinket/sepulchral-sergent.js.map +1 -1
  30. package/dist/simulation/deathrattle-spawns.js +4 -4
  31. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  32. package/dist/simulation/magnetize.d.ts +1 -1
  33. package/dist/simulation/magnetize.js +74 -66
  34. package/dist/simulation/magnetize.js.map +1 -1
  35. package/dist/utils.js +3 -0
  36. package/dist/utils.js.map +1 -1
  37. package/package.json +1 -1
@@ -25,6 +25,7 @@ export interface BoardEntity {
25
25
  scriptDataNum2?: number;
26
26
  inInitialState?: boolean;
27
27
  additionalCards?: readonly string[] | null;
28
+ dynamicInfo?: readonly any[] | null;
28
29
  tags?: {
29
30
  [tag: number]: number;
30
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"board-entity.js","sourceRoot":"","sources":["../src/board-entity.ts"],"names":[],"mappings":"","sourcesContent":["export interface BoardEntity {\r\n\tentityId: number;\r\n\tcardId: string;\r\n\tattack: number;\r\n\thealth: number;\r\n\r\n\tmaxHealth?: number;\r\n\tmaxAttack?: number;\r\n\tavengeCurrent?: number;\r\n\tavengeDefault?: number;\r\n\tfrenzyChargesLeft?: number;\r\n\tdefinitelyDead?: boolean;\r\n\ttaunt?: boolean;\r\n\tdivineShield?: boolean;\r\n\tstrongDivineShield?: boolean;\r\n\tpoisonous?: boolean;\r\n\tvenomous?: boolean;\r\n\treborn?: boolean;\r\n\trebornFromEntityId?: number;\r\n\tcleave?: boolean;\r\n\twindfury?: boolean;\r\n\tstealth?: boolean;\r\n\tenchantments?: BoardEnchantment[];\r\n\tpendingAttackBuffs?: number[];\r\n\tscriptDataNum1?: number;\r\n\tscriptDataNum2?: number;\r\n\tinInitialState?: boolean;\r\n\t// For Build-An-Undead and Zilliax\r\n\tadditionalCards?: readonly string[] | null;\r\n\ttags?: { [tag: number]: number };\r\n\r\n\t// When using this as a remembered deathrattle\r\n\toriginalCardId?: string;\r\n\r\n\t// We only store the card id, because we want all the attack and other data to be computed at runtime, based on the\r\n\t// current stats of the Fish\r\n\trememberedDeathrattles?: {\r\n\t\tcardId: string;\r\n\t\ttiming: number;\r\n\t\trepeats: number;\r\n\t\tmemory?: any;\r\n\t\tscriptDataNum1?: number;\r\n\t\tscriptDataNum2?: number;\r\n\t}[];\r\n\tdeathrattleRepeats?: number;\r\n\tdamageMultiplier?: number;\r\n\tlocked?: boolean;\r\n\tfriendly?: boolean;\r\n\tcantAttack?: boolean;\r\n\thasAttacked?: number;\r\n\timmuneWhenAttackCharges?: number;\r\n\tattackImmediately?: boolean;\r\n\t// Used only to handle murkeye aura?\r\n\tpreviousAttack?: number;\r\n\tlastAffectedByEntity?: BoardEntity;\r\n\t// attacking?: boolean;\r\n\t// Did it have divine shield at least once? (for Sinrunner Blanchy)\r\n\thadDivineShield?: boolean;\r\n\tabiityChargesLeft?: number;\r\n\tindexFromLeftAtTimeOfDeath?: number;\r\n\tspawnIndexFromRight?: number;\r\n\r\n\t// permanentAttack?: number;\r\n\t// permanentHealth?: number;\r\n\ttavernTier?: number;\r\n\r\n\tmemory?: any;\r\n\tgildedInCombat?: boolean;\r\n\r\n\tonCanceledSummon?: () => void;\r\n}\r\n\r\nexport interface BoardEnchantment {\r\n\tcardId: string;\r\n\toriginEntityId?: number;\r\n\ttagScriptDataNum1?: number;\r\n\ttagScriptDataNum2?: number;\r\n\ttiming: number;\r\n\trepeats?: number;\r\n\tvalue?: number;\r\n}\r\n"]}
1
+ {"version":3,"file":"board-entity.js","sourceRoot":"","sources":["../src/board-entity.ts"],"names":[],"mappings":"","sourcesContent":["export interface BoardEntity {\r\n\tentityId: number;\r\n\tcardId: string;\r\n\tattack: number;\r\n\thealth: number;\r\n\r\n\tmaxHealth?: number;\r\n\tmaxAttack?: number;\r\n\tavengeCurrent?: number;\r\n\tavengeDefault?: number;\r\n\tfrenzyChargesLeft?: number;\r\n\tdefinitelyDead?: boolean;\r\n\ttaunt?: boolean;\r\n\tdivineShield?: boolean;\r\n\tstrongDivineShield?: boolean;\r\n\tpoisonous?: boolean;\r\n\tvenomous?: boolean;\r\n\treborn?: boolean;\r\n\trebornFromEntityId?: number;\r\n\tcleave?: boolean;\r\n\twindfury?: boolean;\r\n\tstealth?: boolean;\r\n\tenchantments?: BoardEnchantment[];\r\n\tpendingAttackBuffs?: number[];\r\n\tscriptDataNum1?: number;\r\n\tscriptDataNum2?: number;\r\n\tinInitialState?: boolean;\r\n\t// For Build-An-Undead and Zilliax\r\n\tadditionalCards?: readonly string[] | null;\r\n\tdynamicInfo?: readonly any[] | null;\r\n\ttags?: { [tag: number]: number };\r\n\r\n\t// When using this as a remembered deathrattle\r\n\toriginalCardId?: string;\r\n\r\n\t// We only store the card id, because we want all the attack and other data to be computed at runtime, based on the\r\n\t// current stats of the Fish\r\n\trememberedDeathrattles?: {\r\n\t\tcardId: string;\r\n\t\ttiming: number;\r\n\t\trepeats: number;\r\n\t\tmemory?: any;\r\n\t\tscriptDataNum1?: number;\r\n\t\tscriptDataNum2?: number;\r\n\t}[];\r\n\tdeathrattleRepeats?: number;\r\n\tdamageMultiplier?: number;\r\n\tlocked?: boolean;\r\n\tfriendly?: boolean;\r\n\tcantAttack?: boolean;\r\n\thasAttacked?: number;\r\n\timmuneWhenAttackCharges?: number;\r\n\tattackImmediately?: boolean;\r\n\t// Used only to handle murkeye aura?\r\n\tpreviousAttack?: number;\r\n\tlastAffectedByEntity?: BoardEntity;\r\n\t// attacking?: boolean;\r\n\t// Did it have divine shield at least once? (for Sinrunner Blanchy)\r\n\thadDivineShield?: boolean;\r\n\tabiityChargesLeft?: number;\r\n\tindexFromLeftAtTimeOfDeath?: number;\r\n\tspawnIndexFromRight?: number;\r\n\r\n\t// permanentAttack?: number;\r\n\t// permanentHealth?: number;\r\n\ttavernTier?: number;\r\n\r\n\tmemory?: any;\r\n\tgildedInCombat?: boolean;\r\n\r\n\tonCanceledSummon?: () => void;\r\n}\r\n\r\nexport interface BoardEnchantment {\r\n\tcardId: string;\r\n\toriginEntityId?: number;\r\n\ttagScriptDataNum1?: number;\r\n\ttagScriptDataNum2?: number;\r\n\ttiming: number;\r\n\trepeats?: number;\r\n\tvalue?: number;\r\n}\r\n"]}
@@ -9,22 +9,20 @@ exports.ApexisGuardian = {
9
9
  cardIds: ["BG34_173", "BG34_173_G"],
10
10
  deathrattleSpawn: (minion, input) => {
11
11
  const loops = minion.cardId === "BG34_173_G" ? 2 : 1;
12
+ const cardsToMagnetize = [];
13
+ for (let i = 0; i < loops; i++) {
14
+ const cardToMagnetize = {
15
+ ...input.gameState.allCards.getCard("BG34_170t3"),
16
+ };
17
+ cardToMagnetize.attack = 0;
18
+ cardToMagnetize.health = 0;
19
+ cardsToMagnetize.push(cardToMagnetize);
20
+ }
12
21
  const possibleTargets = input.boardWithDeadEntity.filter((e) => e.health > 0 &&
13
22
  !e.definitelyDead &&
14
23
  e !== minion &&
15
24
  (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.MECH, input.gameState.anomalies, input.gameState.allCards));
16
- const targets = (0, utils_1.pickMultipleRandomDifferent)(possibleTargets, 3);
17
- for (const target of targets) {
18
- for (let j = 0; j < loops; j++) {
19
- const cardToMagnetize = {
20
- ...input.gameState.allCards.getCard("BG34_170t3"),
21
- };
22
- cardToMagnetize.attack = 0;
23
- cardToMagnetize.health = 0;
24
- input.gameState.spectator.registerPowerTarget(minion, target, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoardHero);
25
- (0, magnetize_1.magnetizeToTarget)(target, minion, cardToMagnetize, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState);
26
- }
27
- }
25
+ (0, magnetize_1.magnetizeToTarget)(() => (0, utils_1.pickMultipleRandomDifferent)(possibleTargets, 3), minion, cardsToMagnetize, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState);
28
26
  return [];
29
27
  },
30
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"apexis-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/apexis-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAmE;AAGnE,mDAA+E;AAE/E,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,eAAe,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CACvD,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,cAAc;YACjB,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,mCAA2B,EAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,eAAe,GAA2B;oBAC/C,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAwD;iBAC3F,CAAC;gBACF,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,6BAAiB,EAChB,MAAM,EACN,MAAM,EACN,eAAe,EACf,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;aAGF;SACD;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { Mutable, pickMultipleRandomDifferent } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ApexisGuardian: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ApexisGuardian_BG34_173, CardIds.ApexisGuardian_BG34_173_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ApexisGuardian_BG34_173_G ? 2 : 1;\r\n\t\tconst possibleTargets = input.boardWithDeadEntity.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\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tRace.MECH,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomDifferent(possibleTargets, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tfor (let j = 0; j < loops; j++) {\r\n\t\t\t\tconst cardToMagnetize: Mutable<ReferenceCard> = {\r\n\t\t\t\t\t...input.gameState.allCards.getCard(CardIds.AutoAccelerator_GreenVolumizerToken_BG34_170t3),\r\n\t\t\t\t};\r\n\t\t\t\tcardToMagnetize.attack = 0;\r\n\t\t\t\tcardToMagnetize.health = 0;\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t);\r\n\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tcardToMagnetize,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\t// TMP, just to get a stop in the actions\r\n\t\t\t\t// input.gameState.spectator.registerPlayerAttack(input.boardWithDeadEntity, input.otherBoard, 0);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"apexis-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/apexis-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAmE;AAGnE,mDAA+E;AAE/E,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,eAAe,GAA2B;gBAC/C,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAwD;aAC3F,CAAC;YACF,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACvC;QACD,MAAM,eAAe,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CACvD,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,cAAc;YACjB,CAAC,KAAK,MAAM;YACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,IAAA,6BAAiB,EAChB,GAAG,EAAE,CAAC,IAAA,mCAA2B,EAAC,eAAe,EAAE,CAAC,CAAC,EACrD,MAAM,EACN,gBAAgB,EAChB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { Mutable, pickMultipleRandomDifferent } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ApexisGuardian: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ApexisGuardian_BG34_173, CardIds.ApexisGuardian_BG34_173_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ApexisGuardian_BG34_173_G ? 2 : 1;\r\n\t\tconst cardsToMagnetize = [];\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst cardToMagnetize: Mutable<ReferenceCard> = {\r\n\t\t\t\t...input.gameState.allCards.getCard(CardIds.AutoAccelerator_GreenVolumizerToken_BG34_170t3),\r\n\t\t\t};\r\n\t\t\tcardToMagnetize.attack = 0;\r\n\t\t\tcardToMagnetize.health = 0;\r\n\t\t\tcardsToMagnetize.push(cardToMagnetize);\r\n\t\t}\r\n\t\tconst possibleTargets = input.boardWithDeadEntity.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\te !== minion &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tRace.MECH,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tmagnetizeToTarget(\r\n\t\t\t() => pickMultipleRandomDifferent(possibleTargets, 3),\r\n\t\t\tminion,\r\n\t\t\tcardsToMagnetize,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherBoardHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1,2 +1,2 @@
1
- import { DefaultChargesCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
2
- export declare const BluesySiren: OnWheneverAnotherMinionAttacksCard & DefaultChargesCard;
1
+ import { DefaultChargesCard, OnWheneverAnotherMinionAttacksCard, RallyCard } from '../../card.interface';
2
+ export declare const BluesySiren: OnWheneverAnotherMinionAttacksCard & RallyCard & DefaultChargesCard;
@@ -8,24 +8,30 @@ exports.BluesySiren = {
8
8
  cardIds: ["BG34_931", "BG34_931_G"],
9
9
  defaultCharges: (entity) => 3,
10
10
  onWheneverAnotherMinionAttacks: (minion, input) => {
11
- if (!(0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {
12
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
13
- }
14
- minion.abiityChargesLeft = minion.abiityChargesLeft - 1;
15
- const spellCast = minion.cardId === "BG34_931_G"
16
- ? "BG26_502_Gt"
17
- : "BG26_502t";
18
- (0, cast_tavern_spell_1.castTavernSpell)(spellCast, {
19
- spellCardId: spellCast,
20
- source: input.attackingHero,
21
- target: input.attacker,
22
- board: input.attackingBoard,
23
- hero: input.attackingHero,
24
- otherBoard: input.defendingBoard,
25
- otherHero: input.defendingHero,
26
- gameState: input.gameState,
27
- });
28
- return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
11
+ return process(minion, input);
12
+ },
13
+ rally: (minion, input) => {
14
+ return process(minion, input);
29
15
  },
30
16
  };
17
+ const process = (minion, input) => {
18
+ if (!(0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {
19
+ return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
20
+ }
21
+ minion.abiityChargesLeft = minion.abiityChargesLeft - 1;
22
+ const spellCast = minion.cardId === "BG34_931_G"
23
+ ? "BG26_502_Gt"
24
+ : "BG26_502t";
25
+ (0, cast_tavern_spell_1.castTavernSpell)(spellCast, {
26
+ spellCardId: spellCast,
27
+ source: input.attackingHero,
28
+ target: input.attacker,
29
+ board: input.attackingBoard,
30
+ hero: input.attackingHero,
31
+ otherBoard: input.defendingBoard,
32
+ otherHero: input.defendingHero,
33
+ gameState: input.gameState,
34
+ });
35
+ return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
36
+ };
31
37
  //# sourceMappingURL=bluesy-siren.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bluesy-siren.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bluesy-siren.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,4EAAuE;AAGvE,0CAAiD;AAGpC,QAAA,WAAW,GAA4D;IACnF,OAAO,EAAE,0BAA8D;IACvE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GACd,MAAM,CAAC,MAAM,iBAAmC;YAC/C,CAAC;YACD,CAAC,YAAiD,CAAC;QACrD,IAAA,mCAAe,EAAC,SAAS,EAAE;YAC1B,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,MAAM,EAAE,KAAK,CAAC,QAAQ;YACtB,KAAK,EAAE,KAAK,CAAC,cAAc;YAC3B,IAAI,EAAE,KAAK,CAAC,aAAa;YACzB,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultChargesCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const BluesySiren: OnWheneverAnotherMinionAttacksCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.BluesySiren_BG34_931, CardIds.BluesySiren_BG34_931_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 3,\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.NAGA,\r\n\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tminion.abiityChargesLeft = minion.abiityChargesLeft - 1;\r\n\t\tconst spellCast =\r\n\t\t\tminion.cardId === CardIds.BluesySiren_BG34_931_G\r\n\t\t\t\t? CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502_Gt\r\n\t\t\t\t: CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502t;\r\n\t\tcastTavernSpell(spellCast, {\r\n\t\t\tspellCardId: spellCast,\r\n\t\t\tsource: input.attackingHero,\r\n\t\t\ttarget: input.attacker,\r\n\t\t\tboard: input.attackingBoard,\r\n\t\t\thero: input.attackingHero,\r\n\t\t\totherBoard: input.defendingBoard,\r\n\t\t\totherHero: input.defendingHero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t});\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"bluesy-siren.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bluesy-siren.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,4EAAuE;AAGvE,0CAAiD;AAGpC,QAAA,WAAW,GAAwE;IAC/F,OAAO,EAAE,0BAA8D;IACvE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;CACD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;IAC7D,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;KACtD;IAED,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;IACxD,MAAM,SAAS,GACd,MAAM,CAAC,MAAM,iBAAmC;QAC/C,CAAC;QACD,CAAC,YAAiD,CAAC;IACrD,IAAA,mCAAe,EAAC,SAAS,EAAE;QAC1B,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,KAAK,CAAC,aAAa;QAC3B,MAAM,EAAE,KAAK,CAAC,QAAQ;QACtB,KAAK,EAAE,KAAK,CAAC,cAAc;QAC3B,IAAI,EAAE,KAAK,CAAC,aAAa;QACzB,UAAU,EAAE,KAAK,CAAC,cAAc;QAChC,SAAS,EAAE,KAAK,CAAC,aAAa;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;AACvD,CAAC,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultChargesCard, OnWheneverAnotherMinionAttacksCard, RallyCard } from '../../card.interface';\r\n\r\nexport const BluesySiren: OnWheneverAnotherMinionAttacksCard & RallyCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.BluesySiren_BG34_931, CardIds.BluesySiren_BG34_931_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 3,\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\treturn process(minion, input);\r\n\t},\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\treturn process(minion, input);\r\n\t},\r\n};\r\n\r\nconst process = (minion: BoardEntity, input: OnAttackInput) => {\r\n\tif (\r\n\t\t!hasCorrectTribe(\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tRace.NAGA,\r\n\t\t\tinput.gameState.anomalies,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t)\r\n\t) {\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t}\r\n\r\n\tminion.abiityChargesLeft = minion.abiityChargesLeft - 1;\r\n\tconst spellCast =\r\n\t\tminion.cardId === CardIds.BluesySiren_BG34_931_G\r\n\t\t\t? CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502_Gt\r\n\t\t\t: CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502t;\r\n\tcastTavernSpell(spellCast, {\r\n\t\tspellCardId: spellCast,\r\n\t\tsource: input.attackingHero,\r\n\t\ttarget: input.attacker,\r\n\t\tboard: input.attackingBoard,\r\n\t\thero: input.attackingHero,\r\n\t\totherBoard: input.defendingBoard,\r\n\t\totherHero: input.defendingHero,\r\n\t\tgameState: input.gameState,\r\n\t});\r\n\r\n\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n};\r\n"]}
@@ -16,7 +16,7 @@ exports.ClunkerJunker = {
16
16
  for (let i = 0; i < numberOfMagnetizes; i++) {
17
17
  const minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize((_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 1);
18
18
  input.gameState.spectator.registerPowerTarget(minion, junkerTarget, input.board, null, null);
19
- (0, magnetize_1.magnetizeToTarget)(junkerTarget, minion, minionToMagnetize, input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
19
+ (0, magnetize_1.magnetizeToTarget)([junkerTarget], minion, [minionToMagnetize], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
20
20
  }
21
21
  }
22
22
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"clunker-junker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/clunker-junker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAAqD;AAErD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE;YACjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,eAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAC3E,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAC1B,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7F,IAAA,6BAAiB,EAChB,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;aACF;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 { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const ClunkerJunker: BattlecryCard = {\r\n\tcardIds: [CardIds.ClunkerJunker_BG29_503, CardIds.ClunkerJunker_BG29_503_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst boardWithMechs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst junkerTarget = pickRandom(boardWithMechs);\r\n\t\tif (junkerTarget) {\r\n\t\t\tconst numberOfMagnetizes = minion.cardId === CardIds.ClunkerJunker_BG29_503 ? 1 : 2;\r\n\t\t\tfor (let i = 0; i < numberOfMagnetizes; i++) {\r\n\t\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(\r\n\t\t\t\t\tinput.hero.tavernTier ?? 1,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, junkerTarget, input.board, null, null);\r\n\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\tjunkerTarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminionToMagnetize,\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\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"clunker-junker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/clunker-junker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAAqD;AAErD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE;YACjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,eAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAC3E,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAC1B,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7F,IAAA,6BAAiB,EAChB,CAAC,YAAY,CAAC,EACd,MAAM,EACN,CAAC,iBAAiB,CAAC,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;aACF;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 { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const ClunkerJunker: BattlecryCard = {\r\n\tcardIds: [CardIds.ClunkerJunker_BG29_503, CardIds.ClunkerJunker_BG29_503_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst boardWithMechs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst junkerTarget = pickRandom(boardWithMechs);\r\n\t\tif (junkerTarget) {\r\n\t\t\tconst numberOfMagnetizes = minion.cardId === CardIds.ClunkerJunker_BG29_503 ? 1 : 2;\r\n\t\t\tfor (let i = 0; i < numberOfMagnetizes; i++) {\r\n\t\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(\r\n\t\t\t\t\tinput.hero.tavernTier ?? 1,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, junkerTarget, input.board, null, null);\r\n\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\t[junkerTarget],\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t[minionToMagnetize],\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\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Dramaloc = 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.Dramaloc = {
7
9
  cardIds: ["BG34_143", "BG34_143_G"],
8
10
  deathrattleSpawn: (minion, input) => {
@@ -12,12 +14,11 @@ exports.Dramaloc = {
12
14
  .sort((a, b) => b.attack - a.attack)[0];
13
15
  if (!!statsSource) {
14
16
  for (let i = 0; i < mult; i++) {
15
- for (let j = 0; j < 2; j++) {
16
- const candidates = input.boardWithDeadEntity.filter((e) => e !== minion);
17
- const targets = (0, utils_1.pickMultipleRandom)(candidates, 2);
18
- for (const target of targets) {
19
- (0, stats_1.modifyStats)(target, minion, statsSource.attack, statsSource.health, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
20
- }
17
+ const candidates = input.boardWithDeadEntity.filter((e) => e !== minion &&
18
+ (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
19
+ const targets = (0, utils_1.pickMultipleRandom)(candidates, 2);
20
+ for (const target of targets) {
21
+ (0, stats_1.modifyStats)(target, minion, statsSource.attack, statsSource.health, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
21
22
  }
22
23
  }
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dramaloc.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dramaloc.ts"],"names":[],"mappings":";;;AAEA,mDAA6D;AAE7D,qDAAwD;AAG3C,QAAA,QAAQ,GAAyB;IAC7C,OAAO,EAAE,0BAAwD;IACjE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI;aACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,WAAW,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;oBACzE,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;wBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,MAAM,EAClB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;qBACF;iBACD;aACD;SACD;QAED,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandom } 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 Dramaloc: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Dramaloc_BG34_143, CardIds.Dramaloc_BG34_143_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.Dramaloc_BG34_143_G ? 2 : 1;\r\n\t\tconst statsSource = input.boardWithDeadEntityHero.hand\r\n\t\t\t.filter((e) => e.attack != null && !!e.cardId)\r\n\t\t\t.sort((a, b) => b.attack - a.attack)[0];\r\n\t\tif (!!statsSource) {\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tfor (let j = 0; j < 2; j++) {\r\n\t\t\t\t\tconst candidates = input.boardWithDeadEntity.filter((e) => e !== minion);\r\n\t\t\t\t\tconst targets = pickMultipleRandom(candidates, 2);\r\n\t\t\t\t\tfor (const target of targets) {\r\n\t\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\t\tstatsSource.attack,\r\n\t\t\t\t\t\t\tstatsSource.health,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"dramaloc.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dramaloc.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAA6D;AAE7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,QAAQ,GAAyB;IAC7C,OAAO,EAAE,0BAAwD;IACjE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI;aACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,WAAW,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;oBACZ,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,CAAC;gBACF,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,MAAM,EAClB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QAED,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 { pickMultipleRandom } 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 Dramaloc: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Dramaloc_BG34_143, CardIds.Dramaloc_BG34_143_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.Dramaloc_BG34_143_G ? 2 : 1;\r\n\t\tconst statsSource = input.boardWithDeadEntityHero.hand\r\n\t\t\t.filter((e) => e.attack != null && !!e.cardId)\r\n\t\t\t.sort((a, b) => b.attack - a.attack)[0];\r\n\t\tif (!!statsSource) {\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tconst candidates = input.boardWithDeadEntity.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\te !== minion &&\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.MURLOC,\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\tconst targets = pickMultipleRandom(candidates, 2);\r\n\t\t\t\tfor (const target of targets) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tstatsSource.attack,\r\n\t\t\t\t\t\tstatsSource.health,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImpulsiveTrickster = void 0;
4
+ const utils_1 = require("../../../services/utils");
4
5
  const attack_1 = require("../../../simulation/attack");
5
6
  const stats_1 = require("../../../simulation/stats");
6
7
  exports.ImpulsiveTrickster = {
@@ -9,11 +10,18 @@ exports.ImpulsiveTrickster = {
9
10
  var _a;
10
11
  const mult = minion.cardId === "BG21_006_G" ? 2 : 1;
11
12
  const hasImpulsivePortrait = (_a = input.boardWithDeadEntityHero.trinkets) === null || _a === void 0 ? void 0 : _a.some((t) => t.cardId === "BG32_MagicItem_820");
12
- const targets = hasImpulsivePortrait
13
- ? (0, attack_1.getNeighbours)(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight)
14
- : input.boardWithDeadEntity.filter((e) => e != minion);
15
- for (let j = 0; j < mult; j++) {
16
- for (const target of targets) {
13
+ if (hasImpulsivePortrait) {
14
+ const targets = (0, attack_1.getNeighbours)(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight);
15
+ for (let j = 0; j < mult; j++) {
16
+ for (const target of targets) {
17
+ (0, stats_1.modifyStats)(target, minion, 0, minion.maxHealth, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
18
+ }
19
+ }
20
+ }
21
+ else {
22
+ const candidates = input.boardWithDeadEntity.filter((e) => e != minion);
23
+ for (let j = 0; j < mult; j++) {
24
+ const target = (0, utils_1.pickRandomAlive)(candidates);
17
25
  (0, stats_1.modifyStats)(target, minion, 0, minion.maxHealth, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
18
26
  }
19
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"impulsive-trickster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/impulsive-trickster.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAyB;IACvD,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,oBAAoB,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,QAAQ,0CAAE,IAAI,CACxE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC;QACF,MAAM,OAAO,GAAG,oBAAoB;YACnC,CAAC,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,wBAAwB,CAAC;YAC5F,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,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 { getNeighbours } from '../../../simulation/attack';\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 ImpulsiveTrickster: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ImpulsiveTrickster_BG21_006, CardIds.ImpulsiveTrickster_BG21_006_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ImpulsiveTrickster_BG21_006_G ? 2 : 1;\r\n\t\tconst hasImpulsivePortrait = input.boardWithDeadEntityHero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.ImpulsivePortrait_BG32_MagicItem_820,\r\n\t\t);\r\n\t\tconst targets = hasImpulsivePortrait\r\n\t\t\t? getNeighbours(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight)\r\n\t\t\t: input.boardWithDeadEntity.filter((e) => e != minion);\r\n\t\tfor (let j = 0; j < mult; j++) {\r\n\t\t\tfor (const target of targets) {\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.maxHealth,\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":"impulsive-trickster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/impulsive-trickster.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAC1D,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAyB;IACvD,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,oBAAoB,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,QAAQ,0CAAE,IAAI,CACxE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC;QACF,IAAI,oBAAoB,EAAE;YACzB,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;aAAM;YACN,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;YACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;gBAC3C,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,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 { getNeighbours } from '../../../simulation/attack';\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 ImpulsiveTrickster: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ImpulsiveTrickster_BG21_006, CardIds.ImpulsiveTrickster_BG21_006_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ImpulsiveTrickster_BG21_006_G ? 2 : 1;\r\n\t\tconst hasImpulsivePortrait = input.boardWithDeadEntityHero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.ImpulsivePortrait_BG32_MagicItem_820,\r\n\t\t);\r\n\t\tif (hasImpulsivePortrait) {\r\n\t\t\tconst targets = getNeighbours(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight);\r\n\t\t\tfor (let j = 0; j < mult; j++) {\r\n\t\t\t\tfor (const target of targets) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tminion.maxHealth,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst candidates = input.boardWithDeadEntity.filter((e) => e != minion);\r\n\t\t\tfor (let j = 0; j < mult; j++) {\r\n\t\t\t\tconst target = pickRandomAlive(candidates);\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.maxHealth,\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"]}
@@ -11,7 +11,9 @@ exports.PilotTheShredder = {
11
11
  const mult = minion.cardId === "BG21_HERO_030t_G" ? 2 : 1;
12
12
  const allSpawns = [];
13
13
  for (let i = 0; i < mult; i++) {
14
- const hand = (_a = input.boardWithDeadEntityHero.hand.filter((e) => !!(e === null || e === void 0 ? void 0 : e.cardId)).filter((e) => !e.locked)) !== null && _a !== void 0 ? _a : [];
14
+ const hand = (_a = input.boardWithDeadEntityHero.hand
15
+ .filter((e) => !!(e === null || e === void 0 ? void 0 : e.cardId))
16
+ .filter((e) => !e.locked)) !== null && _a !== void 0 ? _a : [];
15
17
  const highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));
16
18
  const highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;
17
19
  const spawn = !!(highestHealthMinions === null || highestHealthMinions === void 0 ? void 0 : highestHealthMinions.length)
@@ -1 +1 @@
1
- {"version":3,"file":"pilot-the-shredder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/pilot-the-shredder.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAErE,mDAAqD;AAErD,+EAAuE;AAG1D,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,sCAAiG;IAC1G,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;YAC1G,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,CAAA;gBAC3C,CAAC,CAAC,IAAA,kBAAU,EAAC,oBAAoB,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;oBACrC,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC;YACR,IAAI,KAAK,EAAE;gBACV,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBAKpB,MAAM,MAAM,GAAG,IAAA,kCAAa,EAC3B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,QAAQ,EACf,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,KAAK,EAAiB,CAC3B,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;oBACvB,IAAA,kCAAkB,EACjB,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;oBACF,CAAC,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;iBAElD;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aAC1B;SACD;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const PilotTheShredder: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Sneed_SneedsNewShredderToken_BG21_HERO_030t, CardIds.SneedsNewShredder_BG21_HERO_030t_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SneedsNewShredder_BG21_HERO_030t_G ? 2 : 1;\r\n\t\tconst allSpawns = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst hand = input.boardWithDeadEntityHero.hand.filter((e) => !!e?.cardId).filter((e) => !e.locked) ?? [];\r\n\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\tconst highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;\r\n\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t: null;\r\n\t\t\tif (spawn) {\r\n\t\t\t\tspawn.locked = true;\r\n\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t// spawn.locked = true;\r\n\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t1,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\tminion.friendly,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t);\r\n\t\t\t\tfor (const s of spawns) {\r\n\t\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\t\ts,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t\ts.onCanceledSummon = () => (spawn.locked = false);\r\n\t\t\t\t\t// s.backRef = spawn;\r\n\t\t\t\t}\r\n\t\t\t\tallSpawns.push(...spawns);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn allSpawns;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"pilot-the-shredder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/pilot-the-shredder.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAErE,mDAAqD;AAErD,+EAAuE;AAG1D,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,sCAAiG;IAC1G,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GACT,MAAA,KAAK,CAAC,uBAAuB,CAAC,IAAI;iBAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,CAAC;iBAG1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,CAAA;gBAC3C,CAAC,CAAC,IAAA,kBAAU,EAAC,oBAAoB,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;oBACrC,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC;YACR,IAAI,KAAK,EAAE;gBAEV,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBACpB,MAAM,MAAM,GAAG,IAAA,kCAAa,EAC3B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,QAAQ,EACf,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,KAAK,EAAiB,CAC3B,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;oBACvB,IAAA,kCAAkB,EACjB,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;oBACF,CAAC,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;iBAElD;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aAC1B;SACD;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const PilotTheShredder: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Sneed_SneedsNewShredderToken_BG21_HERO_030t, CardIds.SneedsNewShredder_BG21_HERO_030t_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SneedsNewShredder_BG21_HERO_030t_G ? 2 : 1;\r\n\t\tconst allSpawns = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst hand =\r\n\t\t\t\tinput.boardWithDeadEntityHero.hand\r\n\t\t\t\t\t.filter((e) => !!e?.cardId)\r\n\t\t\t\t\t// 2025-12-04: it can summon a minion that is locked by another way, like Flighty scout\r\n\t\t\t\t\t// BUT: if it was summoned by Bassgill, then it won't work\r\n\t\t\t\t\t.filter((e) => !e.locked) ?? [];\r\n\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\tconst highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;\r\n\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t: null;\r\n\t\t\tif (spawn) {\r\n\t\t\t\t// 2025-12-04: actually doesn't look like it gets locked\r\n\t\t\t\tspawn.locked = true;\r\n\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t1,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\tminion.friendly,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t);\r\n\t\t\t\tfor (const s of spawns) {\r\n\t\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\t\ts,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t\ts.onCanceledSummon = () => (spawn.locked = false);\r\n\t\t\t\t\t// s.backRef = spawn;\r\n\t\t\t\t}\r\n\t\t\t\tallSpawns.push(...spawns);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn allSpawns;\r\n\t},\r\n};\r\n"]}
@@ -9,7 +9,7 @@ exports.RicketyRepairbot = {
9
9
  const mult = minion.cardId === "BG32_173_G" ? 2 : 1;
10
10
  for (let i = 0; i < mult; i++) {
11
11
  const minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize((_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 1);
12
- (0, magnetize_1.magnetizeToTarget)(minion, minion, minionToMagnetize, input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
12
+ (0, magnetize_1.magnetizeToTarget)([minion], minion, [minionToMagnetize], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
13
13
  }
14
14
  },
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rickety-repairbot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rickety-repairbot.ts"],"names":[],"mappings":";;;AAEA,6DAAkE;AAGrD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0BAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC;YACzG,IAAA,6BAAiB,EAChB,MAAM,EACN,MAAM,EACN,iBAAiB,EACjB,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 { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const RicketyRepairbot: EndOfTurnCard = {\r\n\tcardIds: [CardIds.RicketyRepairbot_BG32_173, CardIds.RicketyRepairbot_BG32_173_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RicketyRepairbot_BG32_173_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(input.hero.tavernTier ?? 1);\r\n\t\t\tmagnetizeToTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\tminion,\r\n\t\t\t\tminionToMagnetize,\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"]}
1
+ {"version":3,"file":"rickety-repairbot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rickety-repairbot.ts"],"names":[],"mappings":";;;AAEA,6DAAkE;AAGrD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0BAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC;YACzG,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,CAAC,iBAAiB,CAAC,EACnB,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 { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const RicketyRepairbot: EndOfTurnCard = {\r\n\tcardIds: [CardIds.RicketyRepairbot_BG32_173, CardIds.RicketyRepairbot_BG32_173_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RicketyRepairbot_BG32_173_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(input.hero.tavernTier ?? 1);\r\n\t\t\tmagnetizeToTarget(\r\n\t\t\t\t[minion],\r\n\t\t\t\tminion,\r\n\t\t\t\t[minionToMagnetize],\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"]}
@@ -5,13 +5,13 @@ exports.SpellboundSoul = {
5
5
  cardIds: ["BG34_110", "BG34_110_G"],
6
6
  onSpawned: (minion, input) => {
7
7
  const mult = minion.cardId === "BG34_110_G" ? 2 : 1;
8
- const totalSpellsCast = input.hero.globalInfo.SpellsCastThisGame;
8
+ const totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;
9
9
  minion.attack += 2 * totalSpellsCast * mult;
10
10
  minion.health += 1 * totalSpellsCast * mult;
11
11
  },
12
12
  onDespawned: (minion, input) => {
13
13
  const mult = minion.cardId === "BG34_110_G" ? 2 : 1;
14
- const totalSpellsCast = input.hero.globalInfo.SpellsCastThisGame;
14
+ const totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;
15
15
  minion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);
16
16
  minion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);
17
17
  },
@@ -1 +1 @@
1
- {"version":3,"file":"spellbound-soul.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spellbound-soul.ts"],"names":[],"mappings":";;;AAKa,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACjE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;QAC5C,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACjE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SpellboundSoul: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.SpellboundSoul_BG34_110, CardIds.SpellboundSoul_BG34_110_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.SpellsCastThisGame;\r\n\t\tminion.attack += 2 * totalSpellsCast * mult;\r\n\t\tminion.health += 1 * totalSpellsCast * mult;\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.SpellsCastThisGame;\r\n\t\tminion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);\r\n\t\tminion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"spellbound-soul.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/spellbound-soul.ts"],"names":[],"mappings":";;;AAKa,QAAA,cAAc,GAAoC;IAC9D,OAAO,EAAE,0BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;QAC5C,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7C,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nexport const SpellboundSoul: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.SpellboundSoul_BG34_110, CardIds.SpellboundSoul_BG34_110_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tminion.attack += 2 * totalSpellsCast * mult;\r\n\t\tminion.health += 1 * totalSpellsCast * mult;\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SpellboundSoul_BG34_110_G ? 2 : 1;\r\n\t\tconst totalSpellsCast = input.hero.globalInfo.TavernSpellsCastThisGame;\r\n\t\tminion.attack = Math.max(0, minion.attack - 2 * totalSpellsCast * mult);\r\n\t\tminion.health = Math.max(1, minion.health - 1 * totalSpellsCast * mult);\r\n\t},\r\n};\r\n"]}
@@ -15,7 +15,7 @@ exports.TimewarpedElectron = {
15
15
  const targets = input.board.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MECH, input.gameState.anomalies, input.gameState.allCards));
16
16
  for (const target of targets) {
17
17
  for (let i = 0; i < mult; i++) {
18
- (0, magnetize_1.magnetizeToTarget)(target, entity, "BG31_171t", input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
18
+ (0, magnetize_1.magnetizeToTarget)([target], entity, ["BG31_171t"], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
19
19
  }
20
20
  }
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-electron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-electron.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,sCAAwF;IACjG,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,6BAAiB,EAChB,MAAM,EACN,MAAM,eAEN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;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 { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TimewarpedElectron: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedElectron_BG34_Giant_610, CardIds.TimewarpedElectron_BG34_Giant_610_G],\r\n\tafterTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedElectron_BG34_Giant_610_G ? 2 : 1;\r\n\t\tentity.scriptDataNum1 = entity.scriptDataNum1 ?? 0;\r\n\t\tentity.scriptDataNum1++;\r\n\t\tif (entity.scriptDataNum1 % 2 === 0) {\r\n\t\t\tconst targets = input.board.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\tCardIds.MoonsteelJuggernaut_MoonsteelSatelliteToken_BG31_171t,\r\n\t\t\t\t\t\tinput.board,\r\n\t\t\t\t\t\tinput.hero,\r\n\t\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-electron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-electron.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,sCAAwF;IACjG,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,aAA+D,EAC/D,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;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 { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TimewarpedElectron: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedElectron_BG34_Giant_610, CardIds.TimewarpedElectron_BG34_Giant_610_G],\r\n\tafterTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedElectron_BG34_Giant_610_G ? 2 : 1;\r\n\t\tentity.scriptDataNum1 = entity.scriptDataNum1 ?? 0;\r\n\t\tentity.scriptDataNum1++;\r\n\t\tif (entity.scriptDataNum1 % 2 === 0) {\r\n\t\t\tconst targets = input.board.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\t\t[target],\r\n\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\t[CardIds.MoonsteelJuggernaut_MoonsteelSatelliteToken_BG31_171t],\r\n\t\t\t\t\t\tinput.board,\r\n\t\t\t\t\t\tinput.hero,\r\n\t\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -6,13 +6,13 @@ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
6
6
  exports.TimewarpedNelliesShip = {
7
7
  cardIds: ["BG34_Giant_074t", "BG34_Giant_074t_G"],
8
8
  deathrattleSpawn: (minion, input) => {
9
+ var _a, _b;
9
10
  const cardsToAdd = [];
10
- cardsToAdd.push(input.gameState.allCards.getCard(minion.scriptDataNum1).id);
11
- if (minion.cardId === "BG34_Giant_074t_G") {
12
- cardsToAdd.push(input.gameState.allCards.getCard(minion.scriptDataNum2).id);
11
+ for (const info of (_a = minion.dynamicInfo) !== null && _a !== void 0 ? _a : []) {
12
+ cardsToAdd.push(info);
13
13
  }
14
14
  for (const cardToAdd of cardsToAdd) {
15
- const indexFromRight = input.boardWithDeadEntity.length - input.boardWithDeadEntity.indexOf(minion) - 1;
15
+ const indexFromRight = (_b = input.deadEntityIndexFromRight) !== null && _b !== void 0 ? _b : input.boardWithDeadEntity.length - input.boardWithDeadEntity.indexOf(minion) - 1;
16
16
  (0, deathrattle_spawns_1.simplifiedSpawnEntitiesWithAddToBoard)(cardToAdd, 1, input, minion, indexFromRight);
17
17
  }
18
18
  (0, cards_in_hand_1.addCardsInHand)(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-nellies-ship.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-nellies-ship.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAEnE,+EAA+F;AAGlF,QAAA,qBAAqB,GAAyB;IAC1D,OAAO,EAAE,wCAAqG;IAC9G,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,MAAM,wBAAoD,EAAE;YACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5E;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,MAAM,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxG,IAAA,0DAAqC,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;SACnF;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,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 { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntitiesWithAddToBoard } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedNelliesShip: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedNelliesShipToken_BG34_Giant_074t, CardIds.TimewarpedNelliesShip_BG34_Giant_074t_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst cardsToAdd = [];\r\n\t\tcardsToAdd.push(input.gameState.allCards.getCard(minion.scriptDataNum1).id);\r\n\t\tif (minion.cardId === CardIds.TimewarpedNelliesShip_BG34_Giant_074t_G) {\r\n\t\t\tcardsToAdd.push(input.gameState.allCards.getCard(minion.scriptDataNum2).id);\r\n\t\t}\r\n\r\n\t\tfor (const cardToAdd of cardsToAdd) {\r\n\t\t\tconst indexFromRight = input.boardWithDeadEntity.length - input.boardWithDeadEntity.indexOf(minion) - 1;\r\n\t\t\tsimplifiedSpawnEntitiesWithAddToBoard(cardToAdd, 1, input, minion, indexFromRight);\r\n\t\t}\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-nellies-ship.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-nellies-ship.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAEnE,+EAA+F;AAGlF,QAAA,qBAAqB,GAAyB;IAC1D,OAAO,EAAE,wCAAqG;IAC9G,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE,EAAE;YAC5C,UAAU,CAAC,IAAI,CAAC,IAAc,CAAC,CAAC;SAChC;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,MAAM,cAAc,GACnB,MAAA,KAAK,CAAC,wBAAwB,mCAC9B,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClF,IAAA,0DAAqC,EAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;SACnF;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,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 { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntitiesWithAddToBoard } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const TimewarpedNelliesShip: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.TimewarpedNelliesShipToken_BG34_Giant_074t, CardIds.TimewarpedNelliesShip_BG34_Giant_074t_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst cardsToAdd = [];\r\n\t\tfor (const info of minion.dynamicInfo ?? []) {\r\n\t\t\tcardsToAdd.push(info as string);\r\n\t\t}\r\n\r\n\t\tfor (const cardToAdd of cardsToAdd) {\r\n\t\t\tconst indexFromRight =\r\n\t\t\t\tinput.deadEntityIndexFromRight ??\r\n\t\t\t\tinput.boardWithDeadEntity.length - input.boardWithDeadEntity.indexOf(minion) - 1;\r\n\t\t\tsimplifiedSpawnEntitiesWithAddToBoard(cardToAdd, 1, input, minion, indexFromRight);\r\n\t\t}\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -8,7 +8,7 @@ exports.TimewarpedPromoDrake = {
8
8
  startOfCombat: (minion, input) => {
9
9
  var _a;
10
10
  const mult = minion.cardId === "BG34_Giant_088_G" ? 2 : 1;
11
- const buff = (_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 2 * mult;
11
+ const buff = ((_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : 1) * 2 * mult;
12
12
  const targets = input.playerBoard;
13
13
  for (const entity of targets) {
14
14
  (0, stats_1.modifyStats)(entity, minion, buff, buff, input.playerBoard, input.playerEntity, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"timewarped-promo-drake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-promo-drake.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,oBAAoB,GAAsB;IACtD,OAAO,EAAE,sCAA4F;IACrG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAkD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,GAAG,IAAI,CAAC;QAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChG;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedPromoDrake: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedPromoDrake_BG34_Giant_088, CardIds.TimewarpedPromoDrake_BG34_Giant_088_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPromoDrake_BG34_Giant_088_G ? 2 : 1;\r\n\t\tconst buff = minion.scriptDataNum1 ?? 2 * mult;\r\n\t\tconst targets = input.playerBoard;\r\n\t\tfor (const entity of targets) {\r\n\t\t\tmodifyStats(entity, minion, buff, buff, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"timewarped-promo-drake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-promo-drake.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,oBAAoB,GAAsB;IACtD,OAAO,EAAE,sCAA4F;IACrG,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAkD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC;QAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChG;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedPromoDrake: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedPromoDrake_BG34_Giant_088, CardIds.TimewarpedPromoDrake_BG34_Giant_088_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedPromoDrake_BG34_Giant_088_G ? 2 : 1;\r\n\t\tconst buff = (minion.scriptDataNum1 ?? 1) * 2 * mult;\r\n\t\tconst targets = input.playerBoard;\r\n\t\tfor (const entity of targets) {\r\n\t\t\tmodifyStats(entity, minion, buff, buff, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -24,7 +24,10 @@ exports.WhelpWatcher = {
24
24
  spawns.forEach((e) => {
25
25
  e.attackImmediately = true;
26
26
  });
27
- (0, spawns_1.performEntitySpawns)(spawns, spawnInput.boardWithDeadEntity, spawnInput.boardWithDeadEntityHero, minion, input.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1, spawnInput.otherBoard, spawnInput.otherBoardHero, spawnInput.gameState, true, input.defendingEntity);
27
+ const spawned = (0, spawns_1.performEntitySpawns)(spawns, spawnInput.boardWithDeadEntity, spawnInput.boardWithDeadEntityHero, minion, input.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1, spawnInput.otherBoard, spawnInput.otherBoardHero, spawnInput.gameState, true, input.defendingEntity);
28
+ spawned.forEach((e) => {
29
+ e.hasAttacked = 0;
30
+ });
28
31
  return {
29
32
  dmgDoneByAttacker: 0,
30
33
  dmgDoneByDefender: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"whelp-watcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whelp-watcher.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAEjF,uDAAiE;AAGpD,QAAA,YAAY,GAAc;IACtC,OAAO,EAAE,0BAAgE;IACzE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,cAAc;YACzC,uBAAuB,EAAE,KAAK,CAAC,aAAa;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,cAAc,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QACF,MAAM,WAAW,GAChB,MAAM,CAAC,MAAM,iBAAoC;YAChD,CAAC;YACD,CAAC,YAAuD,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAA,4CAAuB,EAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAA,4BAAmB,EAClB,MAAM,EACN,UAAU,CAAC,mBAAmB,EAC9B,UAAU,CAAC,uBAAuB,EAClC,MAAM,EACN,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9E,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,SAAS,EACpB,IAAI,EACJ,KAAK,CAAC,eAAe,CACrB,CAAC;QACF,OAAO;YACN,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;SACpB,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhelpWatcher: RallyCard = {\r\n\tcardIds: [CardIds.WhelpWatcher_BG34_631, CardIds.WhelpWatcher_BG34_631_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (!input.defendingEntity) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.attackingBoard,\r\n\t\t\tboardWithDeadEntityHero: input.attackingHero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t\tdeadEntity: input.attacker,\r\n\t\t\totherBoard: input.defendingBoard,\r\n\t\t\totherBoardHero: input.defendingHero,\r\n\t\t};\r\n\t\tconst spawnCardId =\r\n\t\t\tminion.cardId === CardIds.WhelpWatcher_BG34_631_G\r\n\t\t\t\t? CardIds.TwilightHatchling_TwilightWhelpToken_BG34_630_Gt\r\n\t\t\t\t: CardIds.TwilightHatchling_TwilightWhelpToken_BG34_630t;\r\n\t\tconst spawns = simplifiedSpawnEntities(spawnCardId, 1, spawnInput);\r\n\t\tspawns.forEach((e) => {\r\n\t\t\te.attackImmediately = true;\r\n\t\t});\r\n\t\tperformEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tspawnInput.boardWithDeadEntity,\r\n\t\t\tspawnInput.boardWithDeadEntityHero,\r\n\t\t\tminion,\r\n\t\t\tinput.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1,\r\n\t\t\tspawnInput.otherBoard,\r\n\t\t\tspawnInput.otherBoardHero,\r\n\t\t\tspawnInput.gameState,\r\n\t\t\ttrue,\r\n\t\t\tinput.defendingEntity,\r\n\t\t);\r\n\t\treturn {\r\n\t\t\tdmgDoneByAttacker: 0,\r\n\t\t\tdmgDoneByDefender: 0,\r\n\t\t};\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"whelp-watcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/whelp-watcher.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAEjF,uDAAiE;AAGpD,QAAA,YAAY,GAAc;IACtC,OAAO,EAAE,0BAAgE;IACzE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAA4D,EAAE;QAC9G,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QACD,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,cAAc;YACzC,uBAAuB,EAAE,KAAK,CAAC,aAAa;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,cAAc,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QACF,MAAM,WAAW,GAChB,MAAM,CAAC,MAAM,iBAAoC;YAChD,CAAC;YACD,CAAC,YAAuD,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAA,4CAAuB,EAAC,WAAW,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAClC,MAAM,EACN,UAAU,CAAC,mBAAmB,EAC9B,UAAU,CAAC,uBAAuB,EAClC,MAAM,EACN,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9E,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,SAAS,EACpB,IAAI,EACJ,KAAK,CAAC,eAAe,CACrB,CAAC;QAGF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO;YACN,iBAAiB,EAAE,CAAC;YACpB,iBAAiB,EAAE,CAAC;SACpB,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const WhelpWatcher: RallyCard = {\r\n\tcardIds: [CardIds.WhelpWatcher_BG34_631, CardIds.WhelpWatcher_BG34_631_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (!input.defendingEntity) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.attackingBoard,\r\n\t\t\tboardWithDeadEntityHero: input.attackingHero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t\tdeadEntity: input.attacker,\r\n\t\t\totherBoard: input.defendingBoard,\r\n\t\t\totherBoardHero: input.defendingHero,\r\n\t\t};\r\n\t\tconst spawnCardId =\r\n\t\t\tminion.cardId === CardIds.WhelpWatcher_BG34_631_G\r\n\t\t\t\t? CardIds.TwilightHatchling_TwilightWhelpToken_BG34_630_Gt\r\n\t\t\t\t: CardIds.TwilightHatchling_TwilightWhelpToken_BG34_630t;\r\n\t\tconst spawns = simplifiedSpawnEntities(spawnCardId, 1, spawnInput);\r\n\t\tspawns.forEach((e) => {\r\n\t\t\te.attackImmediately = true;\r\n\t\t});\r\n\t\tconst spawned = performEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tspawnInput.boardWithDeadEntity,\r\n\t\t\tspawnInput.boardWithDeadEntityHero,\r\n\t\t\tminion,\r\n\t\t\tinput.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1,\r\n\t\t\tspawnInput.otherBoard,\r\n\t\t\tspawnInput.otherBoardHero,\r\n\t\t\tspawnInput.gameState,\r\n\t\t\ttrue,\r\n\t\t\tinput.defendingEntity,\r\n\t\t);\r\n\t\t// 2025-12-03: not sure, that might be a HS bug\r\n\t\t// https://replays.firestoneapp.com/?reviewId=67e46c7c-9ac8-41d5-8712-d12e44bef9f9&turn=9&action=6\r\n\t\tspawned.forEach((e) => {\r\n\t\t\te.hasAttacked = 0;\r\n\t\t});\r\n\t\treturn {\r\n\t\t\tdmgDoneByAttacker: 0,\r\n\t\t\tdmgDoneByDefender: 0,\r\n\t\t};\r\n\t},\r\n};\r\n"]}
@@ -6,13 +6,15 @@ 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 = minion.scriptDataNum1 || 2;
9
+ const base = 1 + (minion.scriptDataNum1 || 1);
10
10
  const buff = base * mult;
11
11
  (0, utils_1.addStatsToAliveBoard)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, 0, buff, input.gameState);
12
12
  return [];
13
13
  },
14
14
  onStatsChanged: (minion, input) => {
15
- minion.scriptDataNum1 = (minion.scriptDataNum1 || 2) + 2;
15
+ if (input.target === minion && input.attackAmount > 0) {
16
+ minion.scriptDataNum1 = (minion.scriptDataNum1 || 2) + 1;
17
+ }
16
18
  },
17
19
  };
18
20
  //# sourceMappingURL=sepulchral-sergent.js.map
@@ -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;QAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QACxC,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,MAAM,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,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\tconst base = minion.scriptDataNum1 || 2;\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\tminion.scriptDataNum1 = (minion.scriptDataNum1 || 2) + 2;\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":";;;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"]}
@@ -77,8 +77,8 @@ const spawnEntitiesFromDeathrattle = (deadEntity, deadEntityIndexFromRight, boar
77
77
  ((_d = (_c = b.entityId) !== null && _c !== void 0 ? _c : b.timing) !== null && _d !== void 0 ? _d : 0);
78
78
  });
79
79
  for (let i = 0; i < multiplier; i++) {
80
- let hasTriggered = false;
81
80
  for (const card of cards) {
81
+ let hasTriggered = false;
82
82
  const spawnedEntities = [];
83
83
  const refCard = gameState.allCards.getCard(card.cardId);
84
84
  if (((_a = refCard.type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === reference_data_1.CardType[reference_data_1.CardType.MINION] &&
@@ -616,9 +616,9 @@ const spawnEntitiesFromDeathrattle = (deadEntity, deadEntityIndexFromRight, boar
616
616
  finalSpawns.push(...actualSpawns);
617
617
  }
618
618
  }
619
- }
620
- if (hasTriggered) {
621
- (0, deathrattle_on_trigger_1.onDeathrattleTriggered)(deathrattleTriggeredInput);
619
+ if (hasTriggered) {
620
+ (0, deathrattle_on_trigger_1.onDeathrattleTriggered)(deathrattleTriggeredInput);
621
+ }
622
622
  }
623
623
  }
624
624
  return finalSpawns;