@firestone-hs/simulate-bgs-battle 1.1.628 → 1.1.629

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.
@@ -7,18 +7,19 @@ exports.ExpertTechnician = {
7
7
  deathrattleSpawn: (minion, input) => {
8
8
  const loops = minion.cardId === "BG33_370_G" ? 2 : 1;
9
9
  for (let i = 0; i < loops; i++) {
10
- const target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];
11
- if (!target) {
10
+ const newAttacker = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];
11
+ const newTarget = input.deadEntity.lastAffectedByEntity;
12
+ if (!(newAttacker === null || newAttacker === void 0 ? void 0 : newAttacker.attack) || !newTarget || newTarget.health <= 0 || newTarget.definitelyDead) {
12
13
  continue;
13
14
  }
14
15
  const previousHasAttacked = minion.hasAttacked;
15
16
  const previousWindfury = minion.windfury;
16
- target.attackImmediately = true;
17
- target.windfury = false;
18
- (0, attack_1.simulateAttack)(input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState);
19
- target.hasAttacked = previousHasAttacked;
20
- target.attackImmediately = false;
21
- target.windfury = previousWindfury;
17
+ newAttacker.attackImmediately = true;
18
+ newAttacker.windfury = false;
19
+ (0, attack_1.doFullAttack)(newAttacker, input.boardWithDeadEntity, input.boardWithDeadEntityHero, newTarget, input.otherBoard, input.otherBoardHero, input.gameState);
20
+ newAttacker.hasAttacked = previousHasAttacked;
21
+ newAttacker.attackImmediately = false;
22
+ newAttacker.windfury = previousWindfury;
22
23
  }
23
24
  return null;
24
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"expert-technician.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/expert-technician.ts"],"names":[],"mappings":";;;AAEA,uDAA4D;AAI/C,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,EAAE;gBACZ,SAAS;aACT;YAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;YAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;YACzC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,IAAA,uBAAc,EACb,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;YACzC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { simulateAttack } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ExpertTechnician: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ExpertTechnician_BG33_370, CardIds.ExpertTechnician_BG33_370_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ExpertTechnician_BG33_370_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];\r\n\t\t\tif (!target) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst previousHasAttacked = minion.hasAttacked;\r\n\t\t\tconst previousWindfury = minion.windfury;\r\n\t\t\ttarget.attackImmediately = true;\r\n\t\t\ttarget.windfury = false;\r\n\t\t\tsimulateAttack(\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\ttarget.hasAttacked = previousHasAttacked;\r\n\t\t\ttarget.attackImmediately = false;\r\n\t\t\ttarget.windfury = previousWindfury;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"expert-technician.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/expert-technician.ts"],"names":[],"mappings":";;;AAEA,uDAA0D;AAI7C,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACxD,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,cAAc,EAAE;gBAC5F,SAAS;aACT;YAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;YAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;YACzC,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACrC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7B,IAAA,qBAAY,EACX,WAAW,EACX,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,SAAS,EACT,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YAQF,WAAW,CAAC,WAAW,GAAG,mBAAmB,CAAC;YAC9C,WAAW,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACtC,WAAW,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACxC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { doFullAttack } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ExpertTechnician: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ExpertTechnician_BG33_370, CardIds.ExpertTechnician_BG33_370_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ExpertTechnician_BG33_370_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst newAttacker = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];\r\n\t\t\tconst newTarget = input.deadEntity.lastAffectedByEntity;\r\n\t\t\tif (!newAttacker?.attack || !newTarget || newTarget.health <= 0 || newTarget.definitelyDead) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst previousHasAttacked = minion.hasAttacked;\r\n\t\t\tconst previousWindfury = minion.windfury;\r\n\t\t\tnewAttacker.attackImmediately = true;\r\n\t\t\tnewAttacker.windfury = false;\r\n\t\t\tdoFullAttack(\r\n\t\t\t\tnewAttacker,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tnewTarget,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\t// simulateAttack(\r\n\t\t\t// \tinput.boardWithDeadEntity,\r\n\t\t\t// \tinput.boardWithDeadEntityHero,\r\n\t\t\t// \tinput.otherBoard,\r\n\t\t\t// \tinput.otherBoardHero,\r\n\t\t\t// \tinput.gameState,\r\n\t\t\t// );\r\n\t\t\tnewAttacker.hasAttacked = previousHasAttacked;\r\n\t\t\tnewAttacker.attackImmediately = false;\r\n\t\t\tnewAttacker.windfury = previousWindfury;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@firestone-hs/simulate-bgs-battle",
3
- "version": "1.1.628",
3
+ "version": "1.1.629",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",
7
7
  "test-board": "ts-node test/full-game/full-test.ts",
8
- "test-board-ss": "node --stack-size=50 --trace-uncaught -r ts-node/register test/full-game/full-test.ts",
8
+ "test-board-ss": "node --stack-size=100 --trace-uncaught -r ts-node/register test/full-game/full-test.ts",
9
9
  "test-board-prof": "node --inspect-brk -r ts-node/register test/full-game/full-test.ts",
10
10
  "build": "webpack --color",
11
11
  "build-tsc": "rm -rf dist && tsc",
@@ -24,7 +24,7 @@
24
24
  "dist/**/*"
25
25
  ],
26
26
  "dependencies": {
27
- "@firestone-hs/reference-data": "^2.0.148"
27
+ "@firestone-hs/reference-data": "^3.0.152"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/aws-lambda": "8.10.31",