@firestone-hs/simulate-bgs-battle 1.1.620 → 1.1.621

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.
@@ -11,14 +11,14 @@ exports.Charmwing = {
11
11
  const mult = minion.cardId === "BG33_240_G" ? 2 : 1;
12
12
  const picked = [];
13
13
  for (let i = 0; i < 2; i++) {
14
- const candidates = input.attackingBoard.filter((e) => e.cardId !== "BG33_240" &&
15
- e.cardId !== "BG33_240_G" &&
14
+ const candidates = input.attackingBoard.filter((e) => !exports.Charmwing.cardIds.includes(e.cardId) &&
15
+ !picked.includes(e) &&
16
16
  (0, utils_2.hasCorrectTribe)(e, input.attackingHero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards));
17
17
  const target = (0, utils_1.pickRandom)(candidates);
18
18
  if (!!target) {
19
19
  picked.push(target);
20
20
  for (let j = 0; j < mult; j++) {
21
- (0, stats_1.modifyStats)(target, minion, 0, minion.health, input.attackingBoard, input.attackingHero, input.gameState);
21
+ (0, stats_1.modifyStats)(target, minion, 0, minion.maxHealth, input.attackingBoard, input.attackingHero, input.gameState);
22
22
  }
23
23
  }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"charmwing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/charmwing.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,SAAS,GAAc;IACnC,OAAO,EAAE,0BAA0D;IACnE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,eAA+B;gBACvC,CAAC,CAAC,MAAM,iBAAiC;gBAEzC,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Charmwing: RallyCard = {\r\n\tcardIds: [CardIds.Charmwing_BG33_240, CardIds.Charmwing_BG33_240_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Charmwing_BG33_240_G ? 2 : 1;\r\n\t\tconst picked = [];\r\n\t\tfor (let i = 0; i < 2; i++) {\r\n\t\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\te.cardId !== CardIds.Charmwing_BG33_240 &&\r\n\t\t\t\t\te.cardId !== CardIds.Charmwing_BG33_240_G &&\r\n\t\t\t\t\t// !picked.includes(e) && // Not sure about this yet\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t),\r\n\t\t\t);\r\n\t\t\tconst target = pickRandom(candidates);\r\n\t\t\tif (!!target) {\r\n\t\t\t\tpicked.push(target);\r\n\t\t\t\tfor (let j = 0; j < mult; j++) {\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.health,\r\n\t\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\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\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"charmwing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/charmwing.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,SAAS,GAAc;IACnC,OAAO,EAAE,0BAA0D;IACnE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,iBAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,MAAM,EAAE;gBACb,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const Charmwing: RallyCard = {\r\n\tcardIds: [CardIds.Charmwing_BG33_240, CardIds.Charmwing_BG33_240_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Charmwing_BG33_240_G ? 2 : 1;\r\n\t\tconst picked = [];\r\n\t\tfor (let i = 0; i < 2; i++) {\r\n\t\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!Charmwing.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\t!picked.includes(e) && // Not sure about this yet\r\n\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\te,\r\n\t\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\t\tRace.DRAGON,\r\n\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t),\r\n\t\t\t);\r\n\t\t\tconst target = pickRandom(candidates);\r\n\t\t\tif (!!target) {\r\n\t\t\t\tpicked.push(target);\r\n\t\t\t\tfor (let j = 0; j < mult; j++) {\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.attackingBoard,\r\n\t\t\t\t\t\tinput.attackingHero,\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\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
@@ -8,7 +8,7 @@ exports.GearedGuard = {
8
8
  rally: (minion, input) => {
9
9
  const mult = minion.cardId === "BG33_325_G" ? 2 : 1;
10
10
  for (let i = 0; i < mult; i++) {
11
- const possibleTargets = input.attackingBoard.filter((e) => e !== minion && !e.divineShield);
11
+ const possibleTargets = input.attackingBoard.filter((e) => !exports.GearedGuard.cardIds.includes(e.cardId) && !e.divineShield);
12
12
  if (possibleTargets.length > 0) {
13
13
  const target = (0, utils_1.pickRandom)(possibleTargets);
14
14
  (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,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC5F,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 '@firestone-hs/reference-data';\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((e) => e !== minion && !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"]}
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 '@firestone-hs/reference-data';\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/simulate-bgs-battle",
3
- "version": "1.1.620",
3
+ "version": "1.1.621",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",