@firestone-hs/simulate-bgs-battle 1.1.648 → 1.1.649

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.
@@ -3,12 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GearedGuard = void 0;
4
4
  const divine_shield_1 = require("../../../keywords/divine-shield");
5
5
  const utils_1 = require("../../../services/utils");
6
+ const _card_mappings_1 = require("../_card-mappings");
6
7
  exports.GearedGuard = {
7
8
  cardIds: ["BG33_325", "BG33_325_G"],
8
9
  rally: (minion, input) => {
10
+ var _a, _b;
9
11
  const mult = minion.cardId === "BG33_325_G" ? 2 : 1;
12
+ const cardIds = (_b = (_a = _card_mappings_1.cardMappings[input.attacker.cardId]) === null || _a === void 0 ? void 0 : _a.cardIds) !== null && _b !== void 0 ? _b : exports.GearedGuard.cardIds;
10
13
  for (let i = 0; i < mult; i++) {
11
- const possibleTargets = input.attackingBoard.filter((e) => !exports.GearedGuard.cardIds.includes(e.cardId) && !e.divineShield);
14
+ const possibleTargets = input.attackingBoard.filter((e) => !cardIds.includes(e.cardId) && !e.divineShield);
12
15
  if (possibleTargets.length > 0) {
13
16
  const target = (0, utils_1.pickRandom)(possibleTargets);
14
17
  (0, divine_shield_1.updateDivineShield)(target, input.attackingBoard, input.attackingHero, input.defendingHero, true, input.gameState);
@@ -1 +1 @@
1
- {"version":3,"file":"geared-guard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/geared-guard.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,mDAAqD;AAIxC,QAAA,WAAW,GAAc;IACrC,OAAO,EAAE,0BAA8D;IACvE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CACjE,CAAC;YACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;gBAC3C,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const GearedGuard: RallyCard = {\r\n\tcardIds: [CardIds.GearedGuard_BG33_325, CardIds.GearedGuard_BG33_325_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GearedGuard_BG33_325_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst possibleTargets = input.attackingBoard.filter(\r\n\t\t\t\t(e) => !GearedGuard.cardIds.includes(e.cardId) && !e.divineShield,\r\n\t\t\t);\r\n\t\t\tif (possibleTargets.length > 0) {\r\n\t\t\t\tconst target = pickRandom(possibleTargets);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"geared-guard.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/geared-guard.ts"],"names":[],"mappings":";;;AAEA,mEAAqE;AACrE,mDAAqD;AAGrD,sDAAiD;AAEpC,QAAA,WAAW,GAAc;IACrC,OAAO,EAAE,0BAA8D;IACvE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGtE,MAAM,OAAO,GAAG,MAAA,MAAA,6BAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,0CAAE,OAAO,mCAAI,mBAAW,CAAC,OAAO,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC3G,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAC;gBAC3C,IAAA,kCAAkB,EACjB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,EACnB,IAAI,EACJ,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\nimport { cardMappings } from '../_card-mappings';\r\n\r\nexport const GearedGuard: RallyCard = {\r\n\tcardIds: [CardIds.GearedGuard_BG33_325, CardIds.GearedGuard_BG33_325_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GearedGuard_BG33_325_G ? 2 : 1;\r\n\t\t// For when the Rally is triggered by another minion, eg Stoneshell Sentinel\r\n\t\t// 33.6.2 https://replays.firestoneapp.com/?reviewId=68d6082e-f592-4028-b191-9268e3e6d08f&turn=31&action=2\r\n\t\tconst cardIds = cardMappings[input.attacker.cardId]?.cardIds ?? GearedGuard.cardIds;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst possibleTargets = input.attackingBoard.filter((e) => !cardIds.includes(e.cardId) && !e.divineShield);\r\n\t\t\tif (possibleTargets.length > 0) {\r\n\t\t\t\tconst target = pickRandom(possibleTargets);\r\n\t\t\t\tupdateDivineShield(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.defendingHero,\r\n\t\t\t\t\ttrue,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -11,11 +11,19 @@ exports.StoneshellGuardian = {
11
11
  const rallyMinions = input.playerBoard.filter((e) => !exports.StoneshellGuardian.cardIds.includes(e.cardId) &&
12
12
  (0, utils_1.hasEntityMechanic)(e, reference_data_1.GameTag.BACON_RALLY, input.gameState.allCards));
13
13
  for (const target of rallyMinions) {
14
+ const rallyEnchantments = target.enchantments.filter((e) => (0, utils_1.hasEntityMechanic)(e, reference_data_1.GameTag.BACON_RALLY, input.gameState.allCards));
14
15
  minion.enchantments.push({
15
16
  cardId: target.cardId,
16
17
  originEntityId: target.entityId,
17
18
  timing: input.gameState.sharedState.currentEntityId++,
18
19
  });
20
+ for (const rallyEnchantment of rallyEnchantments) {
21
+ minion.enchantments.push({
22
+ cardId: rallyEnchantment.cardId,
23
+ originEntityId: rallyEnchantment.originEntityId,
24
+ timing: input.gameState.sharedState.currentEntityId++,
25
+ });
26
+ }
19
27
  input.gameState.spectator.registerPowerTarget(minion, target, input.playerBoard, input.playerEntity, input.opponentEntity);
20
28
  }
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stoneshell-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stoneshell-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAIvD,0CAAmD;AAGtC,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,gDAAkG;IAC3G,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QAEvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,4BAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,0BAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpE,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;gBAClC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;oBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,cAAc,EAAE,MAAM,CAAC,QAAQ;oBAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACrD,CAAC,CAAC;gBACH,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { 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 { hasEntityMechanic } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StoneshellGuardian: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StoneshellGuardian_BG33_HERO_000_Buddy, CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// let totalSpawned = 0;\r\n\t\tconst numberOfCopies = minion.cardId === CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCopies; i++) {\r\n\t\t\tconst rallyMinions = input.playerBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!StoneshellGuardian.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\thasEntityMechanic(e, GameTag.BACON_RALLY, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of rallyMinions) {\r\n\t\t\t\tminion.enchantments.push({\r\n\t\t\t\t\tcardId: target.cardId,\r\n\t\t\t\t\toriginEntityId: target.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\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.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}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"stoneshell-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stoneshell-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAIvD,0CAAmD;AAGtC,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,gDAAkG;IAC3G,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QAEvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,4BAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,0BAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpE,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;gBAClC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACnE,CAAC;gBACF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;oBACxB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,cAAc,EAAE,MAAM,CAAC,QAAQ;oBAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;iBACrD,CAAC,CAAC;gBACH,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;oBACjD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;wBACxB,MAAM,EAAE,gBAAgB,CAAC,MAAM;wBAC/B,cAAc,EAAE,gBAAgB,CAAC,cAAc;wBAC/C,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;qBACrD,CAAC,CAAC;iBACH;gBACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { 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 { hasEntityMechanic } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StoneshellGuardian: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StoneshellGuardian_BG33_HERO_000_Buddy, CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// let totalSpawned = 0;\r\n\t\tconst numberOfCopies = minion.cardId === CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCopies; i++) {\r\n\t\t\tconst rallyMinions = input.playerBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!StoneshellGuardian.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\thasEntityMechanic(e, GameTag.BACON_RALLY, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of rallyMinions) {\r\n\t\t\t\tconst rallyEnchantments = target.enchantments.filter((e) =>\r\n\t\t\t\t\thasEntityMechanic(e, GameTag.BACON_RALLY, input.gameState.allCards),\r\n\t\t\t\t);\r\n\t\t\t\tminion.enchantments.push({\r\n\t\t\t\t\tcardId: target.cardId,\r\n\t\t\t\t\toriginEntityId: target.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t});\r\n\t\t\t\tfor (const rallyEnchantment of rallyEnchantments) {\r\n\t\t\t\t\tminion.enchantments.push({\r\n\t\t\t\t\t\tcardId: rallyEnchantment.cardId,\r\n\t\t\t\t\t\toriginEntityId: rallyEnchantment.originEntityId,\r\n\t\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\t});\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.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}\r\n\t\t}\r\n\t\treturn true;\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.648",
3
+ "version": "1.1.649",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",