@firestone-hs/simulate-bgs-battle 1.1.743 → 1.1.744

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.
@@ -15,7 +15,7 @@ exports.AmberGuardian = {
15
15
  const loops = minion.cardId === "BG24_500_G" ? 2 : 1;
16
16
  const dragonsToConsider = otherDragons;
17
17
  for (let i = 0; i < loops; i++) {
18
- const otherDragon = (_a = (0, utils_1.pickRandom)(dragonsToConsider.filter((e) => !e.divineShield))) !== null && _a !== void 0 ? _a : (0, utils_1.pickRandom)(dragonsToConsider);
18
+ const otherDragon = (_a = (0, utils_1.pickRandom)(dragonsToConsider.filter((e) => !e.divineShield), minion)) !== null && _a !== void 0 ? _a : (0, utils_1.pickRandom)(dragonsToConsider, minion);
19
19
  if (otherDragon) {
20
20
  if (!otherDragon.divineShield) {
21
21
  (0, divine_shield_1.updateDivineShield)(otherDragon, input.playerBoard, input.playerEntity, input.opponentEntity, true, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"amber-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/amber-guardian.ts"],"names":[],"mappings":";;;AACA,iEAAoD;AAEpD,mEAAqE;AACrE,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QAEvD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD;aACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAChB,MAAA,IAAA,kBAAU,EAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,mCAAI,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAC;YAC/F,IAAI,WAAW,EAAE;gBAChB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;oBAC9B,IAAA,kCAAkB,EACjB,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,IAAA,mBAAW,EAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/F,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;aACpE;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { Race } from '@firestone-hs/reference-data';\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const AmberGuardian = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// First try to get a target without divine shield, and if none is available, pick one with divine shield\r\n\t\tconst otherDragons = input.playerBoard\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId);\r\n\t\tconst loops = minion.cardId === CardIds.AmberGuardian_BG24_500_G ? 2 : 1;\r\n\t\tconst dragonsToConsider = otherDragons;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst otherDragon =\r\n\t\t\t\tpickRandom(dragonsToConsider.filter((e) => !e.divineShield)) ?? pickRandom(dragonsToConsider);\r\n\t\t\tif (otherDragon) {\r\n\t\t\t\tif (!otherDragon.divineShield) {\r\n\t\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\t\totherDragon,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentEntity,\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}\r\n\t\t\t\tmodifyStats(otherDragon, minion, 2, 2, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\totherDragon,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\tdragonsToConsider.splice(dragonsToConsider.indexOf(otherDragon), 1);\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":"amber-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/amber-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mEAAqE;AAErE,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QAEvD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,YAAY,EAClB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD;aACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,YAAY,CAAC;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAChB,MAAA,IAAA,kBAAU,EACT,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAChD,MAAM,CACN,mCAAI,IAAA,kBAAU,EAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,WAAW,EAAE;gBAChB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;oBAC9B,IAAA,kCAAkB,EACjB,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;gBACD,IAAA,mBAAW,EAAC,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/F,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;aACpE;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 { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const AmberGuardian = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// First try to get a target without divine shield, and if none is available, pick one with divine shield\r\n\t\tconst otherDragons = input.playerBoard\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId);\r\n\t\tconst loops = minion.cardId === CardIds.AmberGuardian_BG24_500_G ? 2 : 1;\r\n\t\tconst dragonsToConsider = otherDragons;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst otherDragon =\r\n\t\t\t\tpickRandom(\r\n\t\t\t\t\tdragonsToConsider.filter((e) => !e.divineShield),\r\n\t\t\t\t\tminion,\r\n\t\t\t\t) ?? pickRandom(dragonsToConsider, minion);\r\n\t\t\tif (otherDragon) {\r\n\t\t\t\tif (!otherDragon.divineShield) {\r\n\t\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\t\totherDragon,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentEntity,\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}\r\n\t\t\t\tmodifyStats(otherDragon, minion, 2, 2, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\totherDragon,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t);\r\n\t\t\t\tdragonsToConsider.splice(dragonsToConsider.indexOf(otherDragon), 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
@@ -9,9 +9,11 @@ exports.BoomInABox = {
9
9
  startOfCombat: (minion, input) => {
10
10
  const mult = minion.cardId === "BG36_620_G" ? 2 : 1;
11
11
  const targets = [...input.playerBoard, ...input.opponentBoard].filter((e) => e !== minion);
12
- for (const target of targets) {
13
- const isSameSide = target.friendly === minion.friendly;
14
- (0, attack_1.dealDamageToMinion)(target, isSameSide ? input.playerBoard : input.opponentBoard, isSameSide ? input.playerEntity : input.opponentEntity, minion, damage * mult, isSameSide ? input.opponentBoard : input.playerBoard, isSameSide ? input.opponentEntity : input.playerEntity, input.gameState);
12
+ for (let i = 0; i < mult; i++) {
13
+ for (const target of targets) {
14
+ const isSameSide = target.friendly === minion.friendly;
15
+ (0, attack_1.dealDamageToMinion)(target, isSameSide ? input.playerBoard : input.opponentBoard, isSameSide ? input.playerEntity : input.opponentEntity, minion, damage, isSameSide ? input.opponentBoard : input.playerBoard, isSameSide ? input.opponentEntity : input.playerEntity, input.gameState);
16
+ }
15
17
  }
16
18
  return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
17
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"boom-in-a-box.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/boom-in-a-box.ts"],"names":[],"mappings":";;;AASA,uDAAgE;AAIhE,MAAM,MAAM,GAAG,CAAC,CAAC;AAEJ,QAAA,UAAU,GAAsB;IAC5C,OAAO,EAAE,0BAA4D;IACrE,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;YACvD,IAAA,2BAAkB,EACjB,MAAM,EACN,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,EACpD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EACtD,MAAM,EACN,MAAM,GAAG,IAAI,EACb,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EACpD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EACtD,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Boom-in-a-Box (Tier 4, 5/10)\r\n * Taunt. Start of Combat: Deal 3 damage to all other minions.\r\n *\r\n * Golden Boom-in-a-Box (Tier 4, 10/20)\r\n * Taunt. Start of Combat: Deal 6 damage to all other minions.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nconst damage = 3;\r\n\r\nexport const BoomInABox: StartOfCombatCard = {\r\n\tcardIds: [CardIds.BoomInABox_BG36_620, CardIds.BoomInABox_BG36_620_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BoomInABox_BG36_620_G ? 2 : 1;\r\n\t\tconst targets = [...input.playerBoard, ...input.opponentBoard].filter((e) => e !== minion);\r\n\t\tfor (const target of targets) {\r\n\t\t\tconst isSameSide = target.friendly === minion.friendly;\r\n\t\t\tdealDamageToMinion(\r\n\t\t\t\ttarget,\r\n\t\t\t\tisSameSide ? input.playerBoard : input.opponentBoard,\r\n\t\t\t\tisSameSide ? input.playerEntity : input.opponentEntity,\r\n\t\t\t\tminion,\r\n\t\t\t\tdamage * mult,\r\n\t\t\t\tisSameSide ? input.opponentBoard : input.playerBoard,\r\n\t\t\t\tisSameSide ? input.opponentEntity : input.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"boom-in-a-box.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/boom-in-a-box.ts"],"names":[],"mappings":";;;AASA,uDAAgE;AAIhE,MAAM,MAAM,GAAG,CAAC,CAAC;AAEJ,QAAA,UAAU,GAAsB;IAC5C,OAAO,EAAE,0BAA4D;IACrE,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;gBACvD,IAAA,2BAAkB,EACjB,MAAM,EACN,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,EACpD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EACtD,MAAM,EACN,MAAM,EACN,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EACpD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EACtD,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;IACrE,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Boom-in-a-Box (Tier 4, 5/10)\r\n * Taunt. Start of Combat: Deal 3 damage to all other minions.\r\n *\r\n * Golden Boom-in-a-Box (Tier 4, 10/20)\r\n * Taunt. Start of Combat: Deal 6 damage to all other minions.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nconst damage = 3;\r\n\r\nexport const BoomInABox: StartOfCombatCard = {\r\n\tcardIds: [CardIds.BoomInABox_BG36_620, CardIds.BoomInABox_BG36_620_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BoomInABox_BG36_620_G ? 2 : 1;\r\n\t\tconst targets = [...input.playerBoard, ...input.opponentBoard].filter((e) => e !== minion);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tconst isSameSide = target.friendly === minion.friendly;\r\n\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tisSameSide ? input.playerBoard : input.opponentBoard,\r\n\t\t\t\t\tisSameSide ? input.playerEntity : input.opponentEntity,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tdamage,\r\n\t\t\t\t\tisSameSide ? input.opponentBoard : input.playerBoard,\r\n\t\t\t\t\tisSameSide ? input.opponentEntity : input.playerEntity,\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 { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t},\r\n};\r\n"]}
@@ -6,7 +6,7 @@ const spawns_1 = require("../../../simulation/spawns");
6
6
  exports.FlitteringBat = {
7
7
  cardIds: ["BG36_200", "BG36_200_G"],
8
8
  rally: (minion, input) => {
9
- const golden = minion.cardId === "BG36_200_G";
9
+ const mult = minion.cardId === "BG36_200_G" ? 2 : 1;
10
10
  const spawnInput = {
11
11
  boardWithDeadEntity: input.attackingBoard,
12
12
  boardWithDeadEntityHero: input.attackingHero,
@@ -15,9 +15,7 @@ exports.FlitteringBat = {
15
15
  otherBoardHero: input.defendingHero,
16
16
  gameState: input.gameState,
17
17
  };
18
- const spawns = (0, deathrattle_spawns_1.simplifiedSpawnEntities)(golden
19
- ? "BG36_200_Gt"
20
- : "BG36_200t", 1, spawnInput);
18
+ const spawns = (0, deathrattle_spawns_1.simplifiedSpawnEntities)("BG36_200t", mult, spawnInput);
21
19
  (0, spawns_1.performEntitySpawns)(spawns, input.attackingBoard, input.attackingHero, input.attacker, input.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1, input.defendingBoard, input.defendingHero, input.gameState);
22
20
  return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
23
21
  },
@@ -1 +1 @@
1
- {"version":3,"file":"flittering-bat.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/flittering-bat.ts"],"names":[],"mappings":";;;AASA,+EAAiF;AAEjF,uDAAiE;AAIpD,QAAA,aAAa,GAAc;IACvC,OAAO,EAAE,0BAAkE;IAC3E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC;QAClE,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,cAAc;YACzC,uBAAuB,EAAE,KAAK,CAAC,aAAa;YAC5C,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,cAAc,EAAE,KAAK,CAAC,aAAa;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,4CAAuB,EACrC,MAAM;YACL,CAAC;YACD,CAAC,YAAiD,EACnD,CAAC,EACD,UAAU,CACV,CAAC;QACF,IAAA,4BAAmB,EAClB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9E,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Flittering Bat (Tier 1, 1/3)\r\n * Rally: Summon a 1/1 Beast.\r\n *\r\n * Golden Flittering Bat (Tier 1, 2/6)\r\n * Rally: Summon a 2/2 Beast.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\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\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nexport const FlitteringBat: RallyCard = {\r\n\tcardIds: [CardIds.FlitteringBat_BG36_200, CardIds.FlitteringBat_BG36_200_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst golden = minion.cardId === CardIds.FlitteringBat_BG36_200_G;\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.attackingBoard,\r\n\t\t\tboardWithDeadEntityHero: input.attackingHero,\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\tgameState: input.gameState,\r\n\t\t};\r\n\t\tconst spawns = simplifiedSpawnEntities(\r\n\t\t\tgolden\r\n\t\t\t\t? CardIds.FlitteringBat_ForagingBatToken_BG36_200_Gt\r\n\t\t\t\t: CardIds.FlitteringBat_ForagingBatToken_BG36_200t,\r\n\t\t\t1,\r\n\t\t\tspawnInput,\r\n\t\t);\r\n\t\tperformEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"flittering-bat.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/flittering-bat.ts"],"names":[],"mappings":";;;AAUA,+EAAiF;AAEjF,uDAAiE;AAGpD,QAAA,aAAa,GAAc;IACvC,OAAO,EAAE,0BAAkE;IAC3E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,UAAU,GAA8B;YAC7C,mBAAmB,EAAE,KAAK,CAAC,cAAc;YACzC,uBAAuB,EAAE,KAAK,CAAC,aAAa;YAC5C,UAAU,EAAE,KAAK,CAAC,QAAQ;YAC1B,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,cAAc,EAAE,KAAK,CAAC,aAAa;YACnC,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,4CAAuB,eAAmD,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3G,IAAA,4BAAmB,EAClB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC9E,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Flittering Bat (Tier 1, 1/3)\r\n * Rally: Summon a 1/1 Beast.\r\n *\r\n * Golden Flittering Bat (Tier 1, 2/6)\r\n * Rally: Summon a 2/2 Beast.\r\n */\r\nimport { 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 FlitteringBat: RallyCard = {\r\n\tcardIds: [CardIds.FlitteringBat_BG36_200, CardIds.FlitteringBat_BG36_200_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.FlitteringBat_BG36_200_G ? 2 : 1;\r\n\t\tconst spawnInput: DeathrattleTriggeredInput = {\r\n\t\t\tboardWithDeadEntity: input.attackingBoard,\r\n\t\t\tboardWithDeadEntityHero: input.attackingHero,\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\tgameState: input.gameState,\r\n\t\t};\r\n\t\tconst spawns = simplifiedSpawnEntities(CardIds.FlitteringBat_ForagingBatToken_BG36_200t, mult, spawnInput);\r\n\t\tperformEntitySpawns(\r\n\t\t\tspawns,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tinput.attacker,\r\n\t\t\tinput.attackingBoard.length - input.attackingBoard.indexOf(input.attacker) - 1,\r\n\t\t\tinput.defendingBoard,\r\n\t\t\tinput.defendingHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -12,7 +12,7 @@ exports.Mummifier = {
12
12
  for (let j = 0; j < mummifierBuff; j++) {
13
13
  const targets = input.boardWithDeadEntity
14
14
  .filter((e) => e.cardId !== "BG28_309" && e.cardId !== "BG28_309_G")
15
- .filter((e) => !e.reborn)
15
+ .filter((e) => !e.reborn && e.health > 0 && !e.definitelyDead)
16
16
  .filter((e) => (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards));
17
17
  const target = (0, utils_1.pickRandom)(targets, minion);
18
18
  if (target) {
@@ -1 +1 @@
1
- {"version":3,"file":"mummifier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mummifier.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AAExD,mDAAqD;AAErD,0CAAiD;AAGpC,QAAA,SAAS,GAAyB;IAC9C,OAAO,EAAE,0BAA0D;IACnE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAA+B,IAAI,CAAC,CAAC,MAAM,iBAAiC,CAAC;iBACnG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,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,CACD,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE;gBACX,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,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;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Mummifier: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Mummifier_BG28_309, CardIds.Mummifier_BG28_309_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mummifierBuff = minion.cardId === CardIds.Mummifier_BG28_309_G ? 2 : 1;\r\n\t\tfor (let j = 0; j < mummifierBuff; j++) {\r\n\t\t\tconst targets = input.boardWithDeadEntity\r\n\t\t\t\t.filter((e) => e.cardId !== CardIds.Mummifier_BG28_309 && e.cardId !== CardIds.Mummifier_BG28_309_G)\r\n\t\t\t\t.filter((e) => !e.reborn)\r\n\t\t\t\t.filter((e) =>\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tRace.UNDEAD,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t),\r\n\t\t\t\t);\r\n\t\t\tconst target = pickRandom(targets, minion);\r\n\t\t\tif (target) {\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\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\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}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"mummifier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mummifier.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AAExD,mDAAqD;AAErD,0CAAiD;AAGpC,QAAA,SAAS,GAAyB;IAC9C,OAAO,EAAE,0BAA0D;IACnE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB;iBACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAA+B,IAAI,CAAC,CAAC,MAAM,iBAAiC,CAAC;iBACnG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;iBAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,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,CACD,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE;gBACX,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,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;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Mummifier: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Mummifier_BG28_309, CardIds.Mummifier_BG28_309_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mummifierBuff = minion.cardId === CardIds.Mummifier_BG28_309_G ? 2 : 1;\r\n\t\tfor (let j = 0; j < mummifierBuff; j++) {\r\n\t\t\tconst targets = input.boardWithDeadEntity\r\n\t\t\t\t.filter((e) => e.cardId !== CardIds.Mummifier_BG28_309 && e.cardId !== CardIds.Mummifier_BG28_309_G)\r\n\t\t\t\t.filter((e) => !e.reborn && e.health > 0 && !e.definitelyDead)\r\n\t\t\t\t.filter((e) =>\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tRace.UNDEAD,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t),\r\n\t\t\t\t);\r\n\t\t\tconst target = pickRandom(targets, minion);\r\n\t\t\tif (target) {\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\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\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}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
@@ -11,8 +11,8 @@ exports.TastyLobster = {
11
11
  deathrattleEffect: (minion, input) => {
12
12
  var _a, _b, _c, _d;
13
13
  const base = minion.cardId === "BG36_202_G" ? 2 : 1;
14
- const atkBuff = base * (1 + ((_a = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _a !== void 0 ? _a : 0));
15
- const healthBuff = base * (1 + ((_b = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _b !== void 0 ? _b : 0));
14
+ const atkBuff = base * ((_a = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _a !== void 0 ? _a : 0);
15
+ const healthBuff = base * ((_b = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff) !== null && _b !== void 0 ? _b : 0);
16
16
  const candidates = input.boardWithDeadEntity.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
17
17
  const targets = (0, utils_1.pickMultipleRandomAlive)(candidates, numberOfTargets);
18
18
  for (const target of targets) {
@@ -1 +1 @@
1
- {"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;QAClF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB;YACzD,IAAI,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n * Deathrattle: Give a random friendly Beast +1/+1. Improve your future Tasty Lobsters.\r\n *\r\n * Golden Tasty Lobster (Tier 3, 2/2)\r\n * Deathrattle: Give a random friendly Beast +2/+2. Improve your future Tasty Lobsters.\r\n *\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst numberOfTargets = 1;\r\n\r\nexport const TastyLobster: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TastyLobster_BG36_202, CardIds.TastyLobster_BG36_202_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst base = minion.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\t// Don't use a fallback to the scriptDataNum1, as it's too cumbersome to manage\r\n\t\t// If for some reason the globalInfo is not set, understand why!\r\n\t\tconst atkBuff = base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst healthBuff = base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst candidates = input.boardWithDeadEntity.filter((e) =>\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\te,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tRace.BEAST,\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\tconst targets = pickMultipleRandomAlive(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tatkBuff,\r\n\t\t\t\thealthBuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst priorBuff = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff =\r\n\t\t\tMath.max(input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0, priorBuff) + 1;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;QAClF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB;YACzD,IAAI,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n * Deathrattle: Give a random friendly Beast +1/+1. Improve your future Tasty Lobsters.\r\n *\r\n * Golden Tasty Lobster (Tier 3, 2/2)\r\n * Deathrattle: Give a random friendly Beast +2/+2. Improve your future Tasty Lobsters.\r\n *\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst numberOfTargets = 1;\r\n\r\nexport const TastyLobster: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TastyLobster_BG36_202, CardIds.TastyLobster_BG36_202_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst base = minion.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\t// Don't use a fallback to the scriptDataNum1, as it's too cumbersome to manage\r\n\t\t// If for some reason the globalInfo is not set, understand why!\r\n\t\tconst atkBuff = base * (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0);\r\n\t\tconst healthBuff = base * (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0);\r\n\t\tconst candidates = input.boardWithDeadEntity.filter((e) =>\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\te,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tRace.BEAST,\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\tconst targets = pickMultipleRandomAlive(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tatkBuff,\r\n\t\t\t\thealthBuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst priorBuff = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff =\r\n\t\t\tMath.max(input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0, priorBuff) + 1;\r\n\t},\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/simulate-bgs-battle",
3
- "version": "1.1.743",
3
+ "version": "1.1.744",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",