@firestone-hs/simulate-bgs-battle 1.1.517 → 1.1.518
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/hero-power/glorious-gloop.js +1 -0
- package/dist/cards/impl/hero-power/glorious-gloop.js.map +1 -1
- package/dist/cards/impl/minion/karmic-chameleon.js +2 -1
- package/dist/cards/impl/minion/karmic-chameleon.js.map +1 -1
- package/dist/cards/impl/minion/parched-wanderer.js +9 -3
- package/dist/cards/impl/minion/parched-wanderer.js.map +1 -1
- package/dist/cards/impl/trinket/summoning-sphere.js +1 -0
- package/dist/cards/impl/trinket/summoning-sphere.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,7 @@ exports.GloriousGloop = {
|
|
|
27
27
|
const highestTierMinion = (0, utils_1.pickRandom)(candidates);
|
|
28
28
|
const clone = (0, utils_2.addImpliedMechanics)({
|
|
29
29
|
...highestTierMinion,
|
|
30
|
+
entityId: input.gameState.sharedState.currentEntityId++,
|
|
30
31
|
lastAffectedByEntity: null,
|
|
31
32
|
definitelyDead: false,
|
|
32
33
|
attackImmediately: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glorious-gloop.js","sourceRoot":"","sources":["../../../../src/cards/impl/hero-power/glorious-gloop.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AAErD,0CAA8E;AAGjE,QAAA,aAAa,GAAsB;IAC/C,mBAAmB,EAAE,YAAY;IACjC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE;YACrC,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,MAAM,CAAA,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACb;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAC3C,OAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,wBAAkE,CAAC,CAAA,EAAA,CACvG,CAAC;YACF,IAAI,CAAC,MAAM,EAAE;gBACZ,OAAO,KAAK,CAAC;aACb;YAED,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7F,IAAI,CAAC,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE;gBAClC,OAAO,KAAK,CAAC;aACb;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CACjG,CAAC;YACF,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,WAAW,CACrF,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACvB,OAAO,KAAK,CAAC;aACb;YACD,MAAM,iBAAiB,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACjD,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;gBACC,GAAG,iBAAiB;gBACpB,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,KAAK;aACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addImpliedMechanics, getTeammateInitialState } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const GloriousGloop: StartOfCombatCard = {\r\n\tstartOfCombatTiming: 'pre-combat',\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerEntity.heroPowerUsed) {\r\n\t\t\tif (!input.playerBoard?.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst target = input.playerBoard.find((m) =>\r\n\t\t\t\tm.enchantments?.some((e) => e.cardId === CardIds.GloriousGloop_InTheGloopEnchantment_BGDUO_HERO_101pe2),\r\n\t\t\t);\r\n\t\t\tif (!target) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\t\tif (!teammateState?.board?.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst highestTier = Math.max(\r\n\t\t\t\t...teammateState.board.map((entity) => input.gameState.allCards.getCard(entity.cardId).techLevel),\r\n\t\t\t);\r\n\t\t\tconst candidates = teammateState.board.filter(\r\n\t\t\t\t(entity) => input.gameState.allCards.getCard(entity.cardId).techLevel === highestTier,\r\n\t\t\t);\r\n\t\t\tif (!candidates.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst highestTierMinion = pickRandom(candidates);\r\n\t\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t\t{\r\n\t\t\t\t\t...highestTierMinion,\r\n\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\t\tattackImmediately: false,\r\n\t\t\t\t},\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\ttarget,\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\t// Replace the \"target\" minion with the \"clone\"\r\n\t\t\tconst index = input.playerBoard.indexOf(target);\r\n\t\t\tinput.playerBoard.splice(index, 1, clone);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"glorious-gloop.js","sourceRoot":"","sources":["../../../../src/cards/impl/hero-power/glorious-gloop.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AAErD,0CAA8E;AAGjE,QAAA,aAAa,GAAsB;IAC/C,mBAAmB,EAAE,YAAY;IACjC,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;;QACzD,IAAI,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE;YACrC,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,MAAM,CAAA,EAAE;gBAC/B,OAAO,KAAK,CAAC;aACb;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAC3C,OAAA,MAAA,CAAC,CAAC,YAAY,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,wBAAkE,CAAC,CAAA,EAAA,CACvG,CAAC;YACF,IAAI,CAAC,MAAM,EAAE;gBACZ,OAAO,KAAK,CAAC;aACb;YAED,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7F,IAAI,CAAC,CAAA,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAA,EAAE;gBAClC,OAAO,KAAK,CAAC;aACb;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CACjG,CAAC;YACF,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,WAAW,CACrF,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACvB,OAAO,KAAK,CAAC;aACb;YACD,MAAM,iBAAiB,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACjD,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;gBACC,GAAG,iBAAiB;gBACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;gBACvD,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,KAAK;aACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addImpliedMechanics, getTeammateInitialState } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const GloriousGloop: StartOfCombatCard = {\r\n\tstartOfCombatTiming: 'pre-combat',\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tif (input.playerEntity.heroPowerUsed) {\r\n\t\t\tif (!input.playerBoard?.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst target = input.playerBoard.find((m) =>\r\n\t\t\t\tm.enchantments?.some((e) => e.cardId === CardIds.GloriousGloop_InTheGloopEnchantment_BGDUO_HERO_101pe2),\r\n\t\t\t);\r\n\t\t\tif (!target) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\t\tif (!teammateState?.board?.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst highestTier = Math.max(\r\n\t\t\t\t...teammateState.board.map((entity) => input.gameState.allCards.getCard(entity.cardId).techLevel),\r\n\t\t\t);\r\n\t\t\tconst candidates = teammateState.board.filter(\r\n\t\t\t\t(entity) => input.gameState.allCards.getCard(entity.cardId).techLevel === highestTier,\r\n\t\t\t);\r\n\t\t\tif (!candidates.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tconst highestTierMinion = pickRandom(candidates);\r\n\t\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t\t{\r\n\t\t\t\t\t...highestTierMinion,\r\n\t\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\t\tattackImmediately: false,\r\n\t\t\t\t},\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\ttarget,\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\t// Replace the \"target\" minion with the \"clone\"\r\n\t\t\tconst index = input.playerBoard.indexOf(target);\r\n\t\t\tinput.playerBoard.splice(index, 1, clone);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -12,6 +12,7 @@ exports.KarmicChameleon = {
|
|
|
12
12
|
const minionToTheLeft = input.board[chameleonIndex - 1];
|
|
13
13
|
const clone = (0, utils_1.addImpliedMechanics)({
|
|
14
14
|
...minionToTheLeft,
|
|
15
|
+
entityId: input.gameState.sharedState.currentEntityId++,
|
|
15
16
|
lastAffectedByEntity: null,
|
|
16
17
|
definitelyDead: false,
|
|
17
18
|
attackImmediately: false,
|
|
@@ -19,7 +20,7 @@ exports.KarmicChameleon = {
|
|
|
19
20
|
if (minion.cardId === "BG31_802_G") {
|
|
20
21
|
(0, golden_1.makeMinionGolden)(clone, minion, input.board, input.hero, input.otherHero, input.gameState);
|
|
21
22
|
}
|
|
22
|
-
input.gameState.spectator.registerPowerTarget(
|
|
23
|
+
input.gameState.spectator.registerPowerTarget(minion, minionToTheLeft, input.board, input.hero, input.otherHero);
|
|
23
24
|
input.board.splice(chameleonIndex, 1, clone);
|
|
24
25
|
}
|
|
25
26
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"karmic-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/karmic-chameleon.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"karmic-chameleon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/karmic-chameleon.ts"],"names":[],"mappings":";;;AAIA,6DAAoE;AACpE,0CAAqD;AAGxC,QAAA,eAAe,GAAe;IAC1C,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9F,IAAI,cAAc,GAAG,CAAC,EAAE;YACvB,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,KAAK,GAAgB,IAAA,2BAAmB,EAC7C;gBACC,GAAG,eAAe;gBAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;gBACvD,oBAAoB,EAAE,IAAI;gBAC1B,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,KAAK;aACxB,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,CACzB,CAAC;YACF,IAAI,MAAM,CAAC,MAAM,iBAAuC,EAAE;gBACzD,IAAA,yBAAgB,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC3F;YACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,eAAe,EACf,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;SAC7C;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { SharedState } from '../../../simulation/shared-state';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { addImpliedMechanics } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const KarmicChameleon: AvengeCard = {\r\n\tcardIds: [CardIds.KarmicChameleon_BG31_802, CardIds.KarmicChameleon_BG31_802_G],\r\n\tbaseAvengeValue: (cardId: string) => 5,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst chameleonIndex = input.board.findIndex((entity) => entity.entityId === minion.entityId);\r\n\t\tif (chameleonIndex > 0) {\r\n\t\t\tconst minionToTheLeft = input.board[chameleonIndex - 1];\r\n\t\t\tconst clone: BoardEntity = addImpliedMechanics(\r\n\t\t\t\t{\r\n\t\t\t\t\t...minionToTheLeft,\r\n\t\t\t\t\tentityId: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t\tdefinitelyDead: false,\r\n\t\t\t\t\tattackImmediately: false,\r\n\t\t\t\t},\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t);\r\n\t\t\tif (minion.cardId === CardIds.KarmicChameleon_BG31_802_G) {\r\n\t\t\t\tmakeMinionGolden(clone, minion, input.board, input.hero, input.otherHero, input.gameState);\r\n\t\t\t}\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\tminionToTheLeft,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.otherHero,\r\n\t\t\t);\r\n\t\t\tinput.board.splice(chameleonIndex, 1, clone);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,11 +9,17 @@ const utils_2 = require("../../../utils");
|
|
|
9
9
|
exports.ParchedWanderer = {
|
|
10
10
|
cardIds: ["BG30_756", "BG30_756_G"],
|
|
11
11
|
battlecry: (minion, input) => {
|
|
12
|
-
const
|
|
12
|
+
const allMinions = [...input.board, ...input.otherBoard];
|
|
13
|
+
const wandererTarget = (0, utils_1.pickRandom)(allMinions.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.allCards)));
|
|
13
14
|
if (!!wandererTarget) {
|
|
14
15
|
const wandererMultiplier = minion.cardId === "BG30_756" ? 1 : 2;
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
const targetBoard = input.board.find((entity) => entity.entityId === wandererTarget.entityId)
|
|
17
|
+
? input.board
|
|
18
|
+
: input.otherBoard;
|
|
19
|
+
const targetHero = targetBoard === input.board ? input.hero : input.otherHero;
|
|
20
|
+
const otherHero = targetBoard === input.board ? input.otherHero : input.hero;
|
|
21
|
+
(0, taunt_1.updateTaunt)(wandererTarget, true, targetBoard, targetHero, otherHero, input.gameState);
|
|
22
|
+
(0, stats_1.modifyStats)(wandererTarget, wandererMultiplier * 2, wandererMultiplier * 3, targetBoard, targetHero, input.gameState);
|
|
17
23
|
}
|
|
18
24
|
},
|
|
19
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parched-wanderer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/parched-wanderer.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAsD;AACtD,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"parched-wanderer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/parched-wanderer.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAsD;AACtD,mDAAqD;AAErD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,IAAA,kBAAU,EAChC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAC/F,CAAC;QACF,IAAI,CAAC,CAAC,cAAc,EAAE;YACrB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,eAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ,CAAC;gBAC5F,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,MAAM,UAAU,GAAG,WAAW,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9E,MAAM,SAAS,GAAG,WAAW,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7E,IAAA,mBAAW,EAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACvF,IAAA,mBAAW,EACV,cAAc,EACd,kBAAkB,GAAG,CAAC,EACtB,kBAAkB,GAAG,CAAC,EACtB,WAAW,EACX,UAAU,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { updateTaunt } from '../../../keywords/taunt';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const ParchedWanderer: BattlecryCard = {\r\n\tcardIds: [CardIds.ParchedWanderer_BG30_756, CardIds.ParchedWanderer_BG30_756_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst wandererTarget = pickRandom(\r\n\t\t\tallMinions.filter((e) => hasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.allCards)),\r\n\t\t);\r\n\t\tif (!!wandererTarget) {\r\n\t\t\tconst wandererMultiplier = minion.cardId === CardIds.ParchedWanderer_BG30_756 ? 1 : 2;\r\n\t\t\tconst targetBoard = input.board.find((entity) => entity.entityId === wandererTarget.entityId)\r\n\t\t\t\t? input.board\r\n\t\t\t\t: input.otherBoard;\r\n\t\t\tconst targetHero = targetBoard === input.board ? input.hero : input.otherHero;\r\n\t\t\tconst otherHero = targetBoard === input.board ? input.otherHero : input.hero;\r\n\t\t\tupdateTaunt(wandererTarget, true, targetBoard, targetHero, otherHero, input.gameState);\r\n\t\t\tmodifyStats(\r\n\t\t\t\twandererTarget,\r\n\t\t\t\twandererMultiplier * 2,\r\n\t\t\t\twandererMultiplier * 3,\r\n\t\t\t\ttargetBoard,\r\n\t\t\t\ttargetHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -15,6 +15,7 @@ exports.SummoningSphere = {
|
|
|
15
15
|
const highestHealthMinion = (0, utils_1.shuffleArray)([...teammateState.board]).sort((a, b) => b.health - a.health)[0];
|
|
16
16
|
const clone = (0, utils_2.addImpliedMechanics)({
|
|
17
17
|
...highestHealthMinion,
|
|
18
|
+
entityId: input.gameState.sharedState.currentEntityId++,
|
|
18
19
|
lastAffectedByEntity: null,
|
|
19
20
|
definitelyDead: false,
|
|
20
21
|
attackImmediately: false,
|
|
@@ -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,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"]}
|
|
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,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;YACvD,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\tentityId: input.gameState.sharedState.currentEntityId++,\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"]}
|