@firestone-hs/simulate-bgs-battle 1.1.492 → 1.1.494
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.
- package/dist/cards/impl/bg-spell/toxic-tumbleweed.d.ts +4 -1
- package/dist/cards/impl/bg-spell/toxic-tumbleweed.js +1 -1
- package/dist/cards/impl/bg-spell/toxic-tumbleweed.js.map +1 -1
- package/dist/cards/impl/minion/carbonic-copy.js +3 -1
- package/dist/cards/impl/minion/carbonic-copy.js.map +1 -1
- package/dist/cards/impl/quest-reward/evil-twin.d.ts +4 -1
- package/dist/cards/impl/quest-reward/evil-twin.js +2 -2
- package/dist/cards/impl/quest-reward/evil-twin.js.map +1 -1
- package/dist/cards/impl/trinket/automaton-portrait.d.ts +2 -5
- package/dist/cards/impl/trinket/automaton-portrait.js +1 -1
- package/dist/cards/impl/trinket/automaton-portrait.js.map +1 -1
- package/dist/cards/impl/trinket/fishy-sticker.d.ts +4 -1
- package/dist/cards/impl/trinket/fishy-sticker.js +1 -11
- package/dist/cards/impl/trinket/fishy-sticker.js.map +1 -1
- package/dist/cards/impl/trinket/summoning-sphere.d.ts +4 -1
- package/dist/cards/impl/trinket/summoning-sphere.js +1 -1
- package/dist/cards/impl/trinket/summoning-sphere.js.map +1 -1
- package/dist/simulation/auras.js +2 -2
- package/dist/simulation/auras.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BoardSecret } from '../../../board-secret';
|
|
2
2
|
import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
|
|
3
3
|
export declare const ToxicTumbleweed: {
|
|
4
|
-
startOfCombat: (trinket: BoardSecret, input: SoCInput) =>
|
|
4
|
+
startOfCombat: (trinket: BoardSecret, input: SoCInput) => {
|
|
5
|
+
hasTriggered: boolean;
|
|
6
|
+
shouldRecomputeCurrentAttacker: boolean;
|
|
7
|
+
};
|
|
5
8
|
};
|
|
@@ -9,7 +9,7 @@ exports.ToxicTumbleweed = {
|
|
|
9
9
|
const newMinions = (0, deathrattle_spawns_1.spawnEntities)("BG28_641t", 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, input.playerEntity.friendly, true, false, false);
|
|
10
10
|
newMinions[0].attackImmediately = true;
|
|
11
11
|
(0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, null, 0, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
12
|
-
return true;
|
|
12
|
+
return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toxic-tumbleweed.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/toxic-tumbleweed.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAoB,EAAE,KAAe,EAAE,EAAE;QACxD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,IAAA,kCAAa,eAE/B,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,IAAI,EACJ,KAAK,EACL,KAAK,CACL,CAAC;YACF,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACvC,IAAA,4BAAmB,EAClB,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,IAAI,EACJ,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"toxic-tumbleweed.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/toxic-tumbleweed.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAoB,EAAE,KAAe,EAAE,EAAE;QACxD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,IAAA,kCAAa,eAE/B,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,IAAI,EACJ,KAAK,EACL,KAAK,CACL,CAAC;YACF,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACvC,IAAA,4BAAmB,EAClB,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,IAAI,EACJ,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardSecret } from '../../../board-secret';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const ToxicTumbleweed = {\r\n\tstartOfCombat: (trinket: BoardSecret, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tCardIds.ToxicTumbleweed_TumblingAssassinToken_BG28_641t,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\tfalse,\r\n\t\t\t);\r\n\t\t\tnewMinions[0].attackImmediately = true;\r\n\t\t\tperformEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tnull,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,6 +5,7 @@ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
|
5
5
|
const spawns_1 = require("../../../simulation/spawns");
|
|
6
6
|
exports.CarbonicCopy = {
|
|
7
7
|
startOfCombat: (minion, input) => {
|
|
8
|
+
let totalSpawned = 0;
|
|
8
9
|
const numberOfCopies = minion.cardId === "BG27_503_G" ? 2 : 1;
|
|
9
10
|
for (let i = 0; i < numberOfCopies; i++) {
|
|
10
11
|
if (!!input.playerBoard.length && input.playerBoard.length < 7) {
|
|
@@ -14,7 +15,8 @@ exports.CarbonicCopy = {
|
|
|
14
15
|
};
|
|
15
16
|
const newMinions = (0, deathrattle_spawns_1.spawnEntities)(copy.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, minion.friendly, true, false, false, copy);
|
|
16
17
|
const indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(minion) + 1);
|
|
17
|
-
(0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, minion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
18
|
+
const actualSpawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, minion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
19
|
+
totalSpawned += actualSpawns.length;
|
|
18
20
|
input.gameState.spectator.registerPowerTarget(minion, copy, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
19
21
|
}
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carbonic-copy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/carbonic-copy.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/D,MAAM,IAAI,GAAgB;oBACzB,GAAG,MAAM;oBACT,oBAAoB,EAAE,IAAI;iBAC1B,CAAC;gBACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,MAAM,CAAC,QAAQ,EACf,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;gBACF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1F,IAAA,4BAAmB,
|
|
1
|
+
{"version":3,"file":"carbonic-copy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/carbonic-copy.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/D,MAAM,IAAI,GAAgB;oBACzB,GAAG,MAAM;oBACT,oBAAoB,EAAE,IAAI;iBAC1B,CAAC;gBACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,MAAM,CAAC,QAAQ,EACf,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;gBACF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1F,MAAM,YAAY,GAAG,IAAA,4BAAmB,EACvC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;gBACpC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,IAAI,EACJ,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 { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const CarbonicCopy = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tlet totalSpawned = 0;\r\n\t\tconst numberOfCopies = minion.cardId === CardIds.CarbonicCopy_BG27_503_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCopies; i++) {\r\n\t\t\tif (!!input.playerBoard.length && input.playerBoard.length < 7) {\r\n\t\t\t\tconst copy: BoardEntity = {\r\n\t\t\t\t\t...minion,\r\n\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t};\r\n\t\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\t\tcopy.cardId,\r\n\t\t\t\t\t1,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\t\tminion.friendly,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\tcopy,\r\n\t\t\t\t);\r\n\t\t\t\tconst indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(minion) + 1);\r\n\t\t\t\tconst actualSpawns = performEntitySpawns(\r\n\t\t\t\t\tnewMinions,\r\n\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tindexFromRight,\r\n\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\ttotalSpawned += actualSpawns.length;\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tcopy,\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,5 +1,8 @@
|
|
|
1
1
|
import { BoardTrinket } from '../../../bgs-player-entity';
|
|
2
2
|
import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
|
|
3
3
|
export declare const EvilTwin: {
|
|
4
|
-
startOfCombat: (trinket: BoardTrinket, input: SoCInput) =>
|
|
4
|
+
startOfCombat: (trinket: BoardTrinket, input: SoCInput) => false | {
|
|
5
|
+
hasTriggered: boolean;
|
|
6
|
+
shouldRecomputeCurrentAttacker: boolean;
|
|
7
|
+
};
|
|
5
8
|
};
|
|
@@ -13,7 +13,7 @@ exports.EvilTwin = {
|
|
|
13
13
|
};
|
|
14
14
|
const newMinions = (0, deathrattle_spawns_1.spawnEntities)(copy.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, highestHealthMinion.friendly, true, false, false, copy);
|
|
15
15
|
const indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(highestHealthMinion) + 1);
|
|
16
|
-
(0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, highestHealthMinion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
16
|
+
const actualSpawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, highestHealthMinion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
17
17
|
input.gameState.spectator.registerPowerTarget(input.playerEntity, copy, input.playerBoard, null, null);
|
|
18
18
|
input.currentAttacker =
|
|
19
19
|
input.playerBoard.length > input.opponentBoard.length
|
|
@@ -25,7 +25,7 @@ exports.EvilTwin = {
|
|
|
25
25
|
? 1
|
|
26
26
|
: 0
|
|
27
27
|
: Math.round(Math.random());
|
|
28
|
-
return true;
|
|
28
|
+
return actualSpawns.length > 0 ? { hasTriggered: true, shouldRecomputeCurrentAttacker: true } : false;
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evil-twin.js","sourceRoot":"","sources":["../../../../src/cards/impl/quest-reward/evil-twin.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,QAAQ,GAAG;IACvB,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,IAAI,GAAgB;gBACzB,GAAG,mBAAmB;gBACtB,oBAAoB,EAAE,IAAI;aAC1B,CAAC;YACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;YACF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;YACvG,IAAA,4BAAmB,
|
|
1
|
+
{"version":3,"file":"evil-twin.js","sourceRoot":"","sources":["../../../../src/cards/impl/quest-reward/evil-twin.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,QAAQ,GAAG;IACvB,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,IAAI,GAAgB;gBACzB,GAAG,mBAAmB;gBACtB,oBAAoB,EAAE,IAAI;aAC1B,CAAC;YACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;YACF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;YACvG,MAAM,YAAY,GAAG,IAAA,4BAAmB,EACvC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,mBAAmB,EACnB,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAGvG,KAAK,CAAC,eAAe;gBACpB,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM;oBACpD,CAAC,CAAC,KAAK,CAAC,gBAAgB;wBACvB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM;wBACvD,CAAC,CAAC,KAAK,CAAC,gBAAgB;4BACvB,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC;wBACJ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9B,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACtG;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const EvilTwin = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (!!input.playerBoard.length && input.playerBoard.length < 7) {\r\n\t\t\tconst highestHealthMinion = [...input.playerBoard].sort((a, b) => b.health - a.health)[0];\r\n\t\t\tconst copy: BoardEntity = {\r\n\t\t\t\t...highestHealthMinion,\r\n\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t};\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tcopy.cardId,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\thighestHealthMinion.friendly,\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\tfalse,\r\n\t\t\t\tcopy,\r\n\t\t\t);\r\n\t\t\tconst indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(highestHealthMinion) + 1);\r\n\t\t\tconst actualSpawns = performEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\thighestHealthMinion,\r\n\t\t\t\tindexFromRight,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(input.playerEntity, copy, input.playerBoard, null, null);\r\n\t\t\t// Recompute first attacker\r\n\t\t\t// See https://replays.firestoneapp.com/?reviewId=93229c4a-d864-4196-83dd-2fea2a5bf70a&turn=29&action=0\r\n\t\t\tinput.currentAttacker =\r\n\t\t\t\tinput.playerBoard.length > input.opponentBoard.length\r\n\t\t\t\t\t? input.playerIsFriendly\r\n\t\t\t\t\t\t? 0\r\n\t\t\t\t\t\t: 1\r\n\t\t\t\t\t: input.opponentBoard.length > input.playerBoard.length\r\n\t\t\t\t\t? input.playerIsFriendly\r\n\t\t\t\t\t\t? 1\r\n\t\t\t\t\t\t: 0\r\n\t\t\t\t\t: Math.round(Math.random());\r\n\t\t\treturn actualSpawns.length > 0 ? { hasTriggered: true, shouldRecomputeCurrentAttacker: true } : false;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const AutomatonPortrait: {
|
|
4
|
-
startOfCombat: (trinket: BoardTrinket, input: SoCInput) => boolean;
|
|
5
|
-
};
|
|
1
|
+
import { StartOfCombatCard } from '../../card.interface';
|
|
2
|
+
export declare const AutomatonPortrait: StartOfCombatCard;
|
|
@@ -8,7 +8,7 @@ exports.AutomatonPortrait = {
|
|
|
8
8
|
if (input.playerBoard.length < 7) {
|
|
9
9
|
const newMinions = (0, deathrattle_spawns_1.spawnEntities)("BG_TTN_401", 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, input.playerEntity.friendly, true);
|
|
10
10
|
(0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, input.playerEntity, 0, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
11
|
-
return true;
|
|
11
|
+
return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automaton-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/automaton-portrait.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;
|
|
1
|
+
{"version":3,"file":"automaton-portrait.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/automaton-portrait.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAIpD,QAAA,iBAAiB,GAAsB;IACnD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,UAAU,GAAG,IAAA,kCAAa,gBAE/B,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,IAAI,CACJ,CAAC;YACF,IAAA,4BAAmB,EAClB,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const AutomatonPortrait: StartOfCombatCard = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tCardIds.AstralAutomaton_BG_TTN_401,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\ttrue,\r\n\t\t\t);\r\n\t\t\tperformEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BoardTrinket } from '../../../bgs-player-entity';
|
|
2
2
|
import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
|
|
3
3
|
export declare const FishySticker: {
|
|
4
|
-
startOfCombat: (trinket: BoardTrinket, input: SoCInput) =>
|
|
4
|
+
startOfCombat: (trinket: BoardTrinket, input: SoCInput) => {
|
|
5
|
+
hasTriggered: boolean;
|
|
6
|
+
shouldRecomputeCurrentAttacker: boolean;
|
|
7
|
+
};
|
|
5
8
|
};
|
|
@@ -11,17 +11,7 @@ exports.FishySticker = {
|
|
|
11
11
|
: "TB_BaconUps_307";
|
|
12
12
|
const newMinions = (0, deathrattle_spawns_1.spawnEntities)(spawnId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, input.playerEntity.friendly, false);
|
|
13
13
|
const spawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, input.playerEntity, 0, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
14
|
-
|
|
15
|
-
input.playerBoard.length > input.opponentBoard.length
|
|
16
|
-
? input.playerIsFriendly
|
|
17
|
-
? 0
|
|
18
|
-
: 1
|
|
19
|
-
: input.opponentBoard.length > input.playerBoard.length
|
|
20
|
-
? input.playerIsFriendly
|
|
21
|
-
? 1
|
|
22
|
-
: 0
|
|
23
|
-
: Math.round(Math.random());
|
|
24
|
-
return true;
|
|
14
|
+
return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
|
|
25
15
|
}
|
|
26
16
|
},
|
|
27
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fishy-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/fishy-sticker.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,OAAO,GACZ,OAAO,CAAC,MAAM,yBAA4C;gBACzD,CAAC;gBACD,CAAC,kBAAoB,CAAC;YACxB,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,OAAO,EACP,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,
|
|
1
|
+
{"version":3,"file":"fishy-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/fishy-sticker.ts"],"names":[],"mappings":";;;AAEA,+EAAuE;AACvE,uDAAiE;AAGpD,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,MAAM,OAAO,GACZ,OAAO,CAAC,MAAM,yBAA4C;gBACzD,CAAC;gBACD,CAAC,kBAAoB,CAAC;YACxB,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,OAAO,EACP,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,YAAY,CAAC,QAAQ,EAC3B,KAAK,CACL,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,4BAAmB,EACjC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const FishySticker = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerBoard.length < 7) {\r\n\t\t\tconst spawnId =\r\n\t\t\t\ttrinket.cardId === CardIds.FishySticker_BG30_MagicItem_821\r\n\t\t\t\t\t? CardIds.AvatarOfNzoth_FishOfNzothToken\r\n\t\t\t\t\t: CardIds.FishOfNzoth;\r\n\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\tspawnId,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.sharedState,\r\n\t\t\t\tinput.gameState.spectator,\r\n\t\t\t\tinput.playerEntity.friendly,\r\n\t\t\t\tfalse,\r\n\t\t\t);\r\n\t\t\tconst spawns = performEntitySpawns(\r\n\t\t\t\tnewMinions,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\t0,\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { BoardTrinket } from '../../../bgs-player-entity';
|
|
2
2
|
import { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';
|
|
3
3
|
export declare const SummoningSphere: {
|
|
4
|
-
startOfCombat: (trinket: BoardTrinket, input: SoCInput) =>
|
|
4
|
+
startOfCombat: (trinket: BoardTrinket, input: SoCInput) => {
|
|
5
|
+
hasTriggered: boolean;
|
|
6
|
+
shouldRecomputeCurrentAttacker: boolean;
|
|
7
|
+
};
|
|
5
8
|
};
|
|
@@ -24,7 +24,7 @@ exports.SummoningSphere = {
|
|
|
24
24
|
const spawned = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, highestHealthMinion, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
25
25
|
if (spawned.length > 0) {
|
|
26
26
|
input.gameState.spectator.registerPowerTarget(input.playerEntity, clone, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
27
|
-
return true;
|
|
27
|
+
return { hasTriggered: true, shouldRecomputeCurrentAttacker: true };
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summoning-sphere.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/summoning-sphere.ts"],"names":[],"mappings":";;;AAEA,mDAAuD;AACvD,+EAAuE;AACvE,uDAAiE;AAEjE,0CAA8E;AAEjE,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE;YAClC,OAAO;SACP;QACD,MAAM,mBAAmB,GAAG,IAAA,oBAAY,EAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;YACC,GAAG,mBAAmB;YACtB,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;SACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,CACL,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAClC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,mBAAmB,EACnB,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,KAAK,EACL,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"summoning-sphere.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/summoning-sphere.ts"],"names":[],"mappings":";;;AAEA,mDAAuD;AACvD,+EAAuE;AACvE,uDAAiE;AAEjE,0CAA8E;AAEjE,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,CAAC,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE;YAClC,OAAO;SACP;QACD,MAAM,mBAAmB,GAAG,IAAA,oBAAY,EAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;YACC,GAAG,mBAAmB;YACtB,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;SACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,WAAW,EAC3B,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,mBAAmB,CAAC,QAAQ,EAC5B,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,CACL,CAAC;QACF,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,4BAAmB,EAClC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,mBAAmB,EACnB,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,KAAK,EACL,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YACF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC;SACpE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addImpliedMechanics, getTeammateInitialState } from '../../../utils';\r\n\r\nexport const SummoningSphere = {\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\tif (!teammateState?.board?.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst highestHealthMinion = shuffleArray([...teammateState.board]).sort((a, b) => b.health - a.health)[0];\r\n\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t{\r\n\t\t\t\t...highestHealthMinion,\r\n\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\tattackImmediately: false,\r\n\t\t\t},\r\n\t\t\tinput.gameState.cardsData,\r\n\t\t);\r\n\t\tconst newMinions = spawnEntities(\r\n\t\t\tclone.cardId,\r\n\t\t\t1,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.opponentBoard,\r\n\t\t\tinput.opponentEntity,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.gameState.cardsData,\r\n\t\t\tinput.gameState.sharedState,\r\n\t\t\tinput.gameState.spectator,\r\n\t\t\thighestHealthMinion.friendly,\r\n\t\t\ttrue,\r\n\t\t\tfalse,\r\n\t\t\tfalse,\r\n\t\t\tclone,\r\n\t\t);\r\n\t\tconst indexFromRight = 0;\r\n\t\tconst spawned = performEntitySpawns(\r\n\t\t\tnewMinions,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\thighestHealthMinion,\r\n\t\t\tindexFromRight,\r\n\t\t\tinput.opponentBoard,\r\n\t\t\tinput.opponentEntity,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\tif (spawned.length > 0) {\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tclone,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t);\r\n\t\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: true };\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
package/dist/simulation/auras.js
CHANGED
|
@@ -10,7 +10,7 @@ const setMissingAuras = (board, boardHero, allCards) => {
|
|
|
10
10
|
};
|
|
11
11
|
exports.setMissingAuras = setMissingAuras;
|
|
12
12
|
const setMissingTrinketAura = (board, boardHero) => {
|
|
13
|
-
var _a;
|
|
13
|
+
var _a, _b;
|
|
14
14
|
for (const trinket of (_a = boardHero.trinkets) !== null && _a !== void 0 ? _a : []) {
|
|
15
15
|
switch (trinket.cardId) {
|
|
16
16
|
case "BG30_MagicItem_997":
|
|
@@ -20,7 +20,7 @@ const setMissingTrinketAura = (board, boardHero) => {
|
|
|
20
20
|
: "BG30_MagicItem_997e2";
|
|
21
21
|
const buff = trinket.cardId === "BG30_MagicItem_997" ? 8 : 20;
|
|
22
22
|
const target = board[0];
|
|
23
|
-
if (!target.enchantments.find((e) => e.cardId === enchantment)) {
|
|
23
|
+
if (!!target && !((_b = target.enchantments) === null || _b === void 0 ? void 0 : _b.find((e) => e.cardId === enchantment))) {
|
|
24
24
|
target.attack += buff;
|
|
25
25
|
target.enchantments.push({
|
|
26
26
|
cardId: enchantment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { hasCorrectTribe } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const setMissingAuras = (board: BoardEntity[], boardHero: BgsPlayerEntity, allCards: AllCardsService): void => {\r\n\tsetMissingMinionsAura(board, boardHero, allCards);\r\n\tsetMissingHeroPowerAura(board, boardHero);\r\n\tsetMissingTrinketAura(board, boardHero);\r\n};\r\n\r\nexport const setMissingTrinketAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const trinket of boardHero.trinkets ?? []) {\r\n\t\tswitch (trinket.cardId) {\r\n\t\t\tcase CardIds.WindrunnerNecklace_BG30_MagicItem_997:\r\n\t\t\tcase CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t:\r\n\t\t\t\tconst enchantment =\r\n\t\t\t\t\ttrinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t\t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t\t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2;\r\n\t\t\t\tconst buff = trinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 20;\r\n\t\t\t\tconst target = board[0];\r\n\t\t\t\tif (!target.enchantments.find((e) => e.cardId === enchantment)) {\r\n\t\t\t\t\ttarget.attack += buff;\r\n\t\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\t\tcardId: enchantment,\r\n\t\t\t\t\t\toriginEntityId: trinket.entityId,\r\n\t\t\t\t\t\ttiming: 0,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tif (boardHero.heroPowerId === CardIds.TheSmokingGun) {\r\n\t\tboard\r\n\t\t\t.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!e.enchantments.find(\r\n\t\t\t\t\t\t(ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment,\r\n\t\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 4;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.VolatileVenom) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 7;\r\n\t\t\t\te.health += 7;\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\ttiming: 0,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (board: BoardEntity[], boardHero: BgsPlayerEntity, allCards: AllCardsService): void => {\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_BG_NEW1_027,\r\n\t\tCardIds.SouthseaCaptain_YarrrVanillaEnchantment,\r\n\t\t1,\r\n\t\t1,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_TB_BaconUps_136,\r\n\t\tCardIds.SouthseaCaptain_YarrrEnchantment,\r\n\t\t2,\r\n\t\t2,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglLegacyEnchantment,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglEnchantment,\r\n\t\t4,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, allCards)),\r\n\t\tCardIds.Kathranatir_BG21_039,\r\n\t\tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, allCards)),\r\n\t\tCardIds.Kathranatir_BG21_039_G,\r\n\t\tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge,\r\n\t\t4,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043e,\r\n\t\t6,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043_G,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043_Ge,\r\n\t\t12,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\tboardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030_G,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\t2 * boardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n};\r\n\r\nconst setMissingAura = (\r\n\tboard: BoardEntity[],\r\n\tminionCardId: string,\r\n\tenchantmentCardId: string,\r\n\tattack: number,\r\n\thealth: number,\r\n\tignoreSelf = true,\r\n\tallCards: AllCardsService = null,\r\n): void => {\r\n\tconst buffers = board.filter((e) => e.cardId === minionCardId);\r\n\tfor (const buffer of buffers) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += attack;\r\n\t\t\t\te.health += health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (\r\n\thero: BgsPlayerEntity,\r\n\tcardsData: CardsData,\r\n\tisPlayer: boolean,\r\n\tentityIdContainer: { entityId: number },\r\n): void => {\r\n\tconst avengeValue = cardsData.avengeValue(hero.heroPowerId);\r\n\tif (avengeValue > 0) {\r\n\t\thero.avengeCurrent = avengeValue;\r\n\t\thero.avengeDefault = avengeValue;\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\tconst heroPowerAsReward = hero.cardId === CardIds.SireDenathrius_BG24_HERO_100 ? hero.heroPowerId : null;\r\n\thero.questRewards = [...(hero.questRewards ?? []), heroPowerAsReward].filter((e) => !!e);\r\n\thero.questRewardEntities = hero.questRewardEntities\r\n\t\t? hero.questRewardEntities.map((reward: any) => ({\r\n\t\t\t\tcardId: reward.CardId,\r\n\t\t\t\tscriptDataNum1: reward.ScriptDataNum1,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward.CardId),\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward.CardId),\r\n\t\t }))\r\n\t\t: hero.questRewards.map((reward) => ({\r\n\t\t\t\tcardId: reward,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward),\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward),\r\n\t\t\t\tscriptDataNum1: cardsData.defaultScriptDataNum(reward),\r\n\t\t }));\r\n\thero.trinkets = (hero.trinkets ?? []).map((trinket) => ({\r\n\t\t...trinket,\r\n\t\tavengeDefault: cardsData.avengeValue(trinket.cardId),\r\n\t\tavengeCurrent: cardsData.avengeValue(trinket.cardId),\r\n\t\tscriptDataNum1: cardsData.defaultScriptDataNum(trinket.cardId),\r\n\t}));\r\n\t// 0 is not a valid entityId\r\n\thero.entityId = hero.entityId || entityIdContainer.entityId--;\r\n\thero.hand = hero.hand ?? [];\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {};\r\n\t}\r\n\r\n\thero.globalInfo.EternalKnightsDeadThisGame = hero.globalInfo.EternalKnightsDeadThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisGame = hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\thero.globalInfo.UndeadAttackBonus = hero.globalInfo.UndeadAttackBonus ?? 0;\r\n\thero.globalInfo.FrostlingBonus = hero.globalInfo.FrostlingBonus ?? 0;\r\n\thero.globalInfo.BloodGemAttackBonus =\r\n\t\t(hero.globalInfo.BloodGemAttackBonus ?? 0) +\r\n\t\t// Not sure why, but this isn't reflected in the player enchant\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t(hero.globalInfo.BloodGemHealthBonus ?? 0) +\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.GoldrinnBuffAtk = hero.globalInfo.GoldrinnBuffAtk ?? 0;\r\n\thero.globalInfo.GoldrinnBuffHealth = hero.globalInfo.GoldrinnBuffHealth ?? 0;\r\n};\r\n\r\nexport const clearStealthIfNeeded = (board: BoardEntity[], otherBoard: BoardEntity[]): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n};\r\n\r\nexport const updateBoardwideAuras = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (board.length === 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tboard\r\n\t\t.filter((entity) =>\r\n\t\t\tentity.enchantments.some(\r\n\t\t\t\t(ench) =>\r\n\t\t\t\t\tench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e ||\r\n\t\t\t\t\tench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t),\r\n\t\t)\r\n\t\t.forEach((e) => {\r\n\t\t\tconst enchantments = e.enchantments.filter(\r\n\t\t\t\t(ench) => ench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e,\r\n\t\t\t).length;\r\n\t\t\tconst greaterEnchantments = e.enchantments.filter(\r\n\t\t\t\t(ench) => ench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t).length;\r\n\t\t\te.attack = Math.max(0, e.attack - enchantments * 8 - greaterEnchantments * 15);\r\n\t\t\te.enchantments = e.enchantments\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(ench) =>\r\n\t\t\t\t\t\tench.cardId !== CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e,\r\n\t\t\t\t)\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(ench) =>\r\n\t\t\t\t\t\tench.cardId !== CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t\t);\r\n\t\t});\r\n\tboardHero.trinkets\r\n\t\t.filter(\r\n\t\t\t(t) =>\r\n\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ||\r\n\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t,\r\n\t\t)\r\n\t\t.forEach((t) => {\r\n\t\t\tconst buff = t.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 15;\r\n\t\t\tboard[0].attack = board[0].attack + buff;\r\n\t\t\tboard[0].enchantments.push({\r\n\t\t\t\tcardId:\r\n\t\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t\t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t\t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t\toriginEntityId: t.entityId,\r\n\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t\t});\r\n\t\t});\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { hasCorrectTribe } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const setMissingAuras = (board: BoardEntity[], boardHero: BgsPlayerEntity, allCards: AllCardsService): void => {\r\n\tsetMissingMinionsAura(board, boardHero, allCards);\r\n\tsetMissingHeroPowerAura(board, boardHero);\r\n\tsetMissingTrinketAura(board, boardHero);\r\n};\r\n\r\nexport const setMissingTrinketAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const trinket of boardHero.trinkets ?? []) {\r\n\t\tswitch (trinket.cardId) {\r\n\t\t\tcase CardIds.WindrunnerNecklace_BG30_MagicItem_997:\r\n\t\t\tcase CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t:\r\n\t\t\t\tconst enchantment =\r\n\t\t\t\t\ttrinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t\t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t\t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2;\r\n\t\t\t\tconst buff = trinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 20;\r\n\t\t\t\tconst target = board[0];\r\n\t\t\t\tif (!!target && !target.enchantments?.find((e) => e.cardId === enchantment)) {\r\n\t\t\t\t\ttarget.attack += buff;\r\n\t\t\t\t\ttarget.enchantments.push({\r\n\t\t\t\t\t\tcardId: enchantment,\r\n\t\t\t\t\t\toriginEntityId: trinket.entityId,\r\n\t\t\t\t\t\ttiming: 0,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tif (boardHero.heroPowerId === CardIds.TheSmokingGun) {\r\n\t\tboard\r\n\t\t\t.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!e.enchantments.find(\r\n\t\t\t\t\t\t(ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment,\r\n\t\t\t\t\t),\r\n\t\t\t)\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 4;\r\n\t\t\t});\r\n\t}\r\n\tif (boardHero.heroPowerId === CardIds.VolatileVenom) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += 7;\r\n\t\t\t\te.health += 7;\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\ttiming: 0,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (board: BoardEntity[], boardHero: BgsPlayerEntity, allCards: AllCardsService): void => {\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_BG_NEW1_027,\r\n\t\tCardIds.SouthseaCaptain_YarrrVanillaEnchantment,\r\n\t\t1,\r\n\t\t1,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_TB_BaconUps_136,\r\n\t\tCardIds.SouthseaCaptain_YarrrEnchantment,\r\n\t\t2,\r\n\t\t2,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglLegacyEnchantment,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglEnchantment,\r\n\t\t4,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, allCards)),\r\n\t\tCardIds.Kathranatir_BG21_039,\r\n\t\tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, allCards)),\r\n\t\tCardIds.Kathranatir_BG21_039_G,\r\n\t\tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge,\r\n\t\t4,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043e,\r\n\t\t6,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043_G,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043_Ge,\r\n\t\t12,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\tboardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030_G,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\t2 * boardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n};\r\n\r\nconst setMissingAura = (\r\n\tboard: BoardEntity[],\r\n\tminionCardId: string,\r\n\tenchantmentCardId: string,\r\n\tattack: number,\r\n\thealth: number,\r\n\tignoreSelf = true,\r\n\tallCards: AllCardsService = null,\r\n): void => {\r\n\tconst buffers = board.filter((e) => e.cardId === minionCardId);\r\n\tfor (const buffer of buffers) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += attack;\r\n\t\t\t\te.health += health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (\r\n\thero: BgsPlayerEntity,\r\n\tcardsData: CardsData,\r\n\tisPlayer: boolean,\r\n\tentityIdContainer: { entityId: number },\r\n): void => {\r\n\tconst avengeValue = cardsData.avengeValue(hero.heroPowerId);\r\n\tif (avengeValue > 0) {\r\n\t\thero.avengeCurrent = avengeValue;\r\n\t\thero.avengeDefault = avengeValue;\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\tconst heroPowerAsReward = hero.cardId === CardIds.SireDenathrius_BG24_HERO_100 ? hero.heroPowerId : null;\r\n\thero.questRewards = [...(hero.questRewards ?? []), heroPowerAsReward].filter((e) => !!e);\r\n\thero.questRewardEntities = hero.questRewardEntities\r\n\t\t? hero.questRewardEntities.map((reward: any) => ({\r\n\t\t\t\tcardId: reward.CardId,\r\n\t\t\t\tscriptDataNum1: reward.ScriptDataNum1,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward.CardId),\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward.CardId),\r\n\t\t }))\r\n\t\t: hero.questRewards.map((reward) => ({\r\n\t\t\t\tcardId: reward,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward),\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward),\r\n\t\t\t\tscriptDataNum1: cardsData.defaultScriptDataNum(reward),\r\n\t\t }));\r\n\thero.trinkets = (hero.trinkets ?? []).map((trinket) => ({\r\n\t\t...trinket,\r\n\t\tavengeDefault: cardsData.avengeValue(trinket.cardId),\r\n\t\tavengeCurrent: cardsData.avengeValue(trinket.cardId),\r\n\t\tscriptDataNum1: cardsData.defaultScriptDataNum(trinket.cardId),\r\n\t}));\r\n\t// 0 is not a valid entityId\r\n\thero.entityId = hero.entityId || entityIdContainer.entityId--;\r\n\thero.hand = hero.hand ?? [];\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {};\r\n\t}\r\n\r\n\thero.globalInfo.EternalKnightsDeadThisGame = hero.globalInfo.EternalKnightsDeadThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisGame = hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\thero.globalInfo.UndeadAttackBonus = hero.globalInfo.UndeadAttackBonus ?? 0;\r\n\thero.globalInfo.FrostlingBonus = hero.globalInfo.FrostlingBonus ?? 0;\r\n\thero.globalInfo.BloodGemAttackBonus =\r\n\t\t(hero.globalInfo.BloodGemAttackBonus ?? 0) +\r\n\t\t// Not sure why, but this isn't reflected in the player enchant\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t(hero.globalInfo.BloodGemHealthBonus ?? 0) +\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.GoldrinnBuffAtk = hero.globalInfo.GoldrinnBuffAtk ?? 0;\r\n\thero.globalInfo.GoldrinnBuffHealth = hero.globalInfo.GoldrinnBuffHealth ?? 0;\r\n};\r\n\r\nexport const clearStealthIfNeeded = (board: BoardEntity[], otherBoard: BoardEntity[]): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => (e.stealth = false));\r\n\t\totherBoard.forEach((e) => (e.stealth = false));\r\n\t}\r\n};\r\n\r\nexport const updateBoardwideAuras = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\tif (board.length === 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tboard\r\n\t\t.filter((entity) =>\r\n\t\t\tentity.enchantments.some(\r\n\t\t\t\t(ench) =>\r\n\t\t\t\t\tench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e ||\r\n\t\t\t\t\tench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t),\r\n\t\t)\r\n\t\t.forEach((e) => {\r\n\t\t\tconst enchantments = e.enchantments.filter(\r\n\t\t\t\t(ench) => ench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e,\r\n\t\t\t).length;\r\n\t\t\tconst greaterEnchantments = e.enchantments.filter(\r\n\t\t\t\t(ench) => ench.cardId === CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t).length;\r\n\t\t\te.attack = Math.max(0, e.attack - enchantments * 8 - greaterEnchantments * 15);\r\n\t\t\te.enchantments = e.enchantments\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(ench) =>\r\n\t\t\t\t\t\tench.cardId !== CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e,\r\n\t\t\t\t)\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(ench) =>\r\n\t\t\t\t\t\tench.cardId !== CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t\t);\r\n\t\t});\r\n\tboardHero.trinkets\r\n\t\t.filter(\r\n\t\t\t(t) =>\r\n\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ||\r\n\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t,\r\n\t\t)\r\n\t\t.forEach((t) => {\r\n\t\t\tconst buff = t.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 15;\r\n\t\t\tboard[0].attack = board[0].attack + buff;\r\n\t\t\tboard[0].enchantments.push({\r\n\t\t\t\tcardId:\r\n\t\t\t\t\tt.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t\t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t\t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2,\r\n\t\t\t\toriginEntityId: t.entityId,\r\n\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t\t});\r\n\t\t});\r\n};\r\n"]}
|