@firestone-hs/simulate-bgs-battle 1.1.237 → 1.1.239
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/simulation/add-minion-to-board.js +22 -16
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/attack.js +6 -6
- package/dist/simulation/attack.js.map +1 -1
- package/dist/simulation/auras.js +2 -2
- package/dist/simulation/auras.js.map +1 -1
- package/dist/simulation/avenge.js +1 -1
- package/dist/simulation/avenge.js.map +1 -1
- package/dist/simulation/deathrattle-effects.js +3 -2
- package/dist/simulation/deathrattle-effects.js.map +1 -1
- package/dist/simulation/deathrattle-spawns.js +1 -1
- package/dist/simulation/deathrattle-spawns.js.map +1 -1
- package/dist/simulation/remove-minion-from-board.js +1 -1
- package/dist/simulation/remove-minion-from-board.js.map +1 -1
- package/dist/utils.js +4 -4
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,7 +21,7 @@ const addMinionToBoard = (board, boardHero, otherHero, index, minionToAdd, allCa
|
|
|
21
21
|
};
|
|
22
22
|
exports.addMinionToBoard = addMinionToBoard;
|
|
23
23
|
const handleSpawnEffect = (board, boardHero, otherHero, spawned, allCards, spectator, sharedState) => {
|
|
24
|
-
var _a;
|
|
24
|
+
var _a, _b;
|
|
25
25
|
const cardIds = [spawned.cardId, ...((_a = spawned.additionalCards) !== null && _a !== void 0 ? _a : [])];
|
|
26
26
|
for (const spawnedCardId of cardIds) {
|
|
27
27
|
switch (spawnedCardId) {
|
|
@@ -64,7 +64,7 @@ const handleSpawnEffect = (board, boardHero, otherHero, spawned, allCards, spect
|
|
|
64
64
|
board
|
|
65
65
|
.filter((e) => e.divineShield)
|
|
66
66
|
.forEach((e) => {
|
|
67
|
-
e.attack += spawned.cardId === "BG25_043_G" ?
|
|
67
|
+
e.attack += spawned.cardId === "BG25_043_G" ? 16 : 8;
|
|
68
68
|
});
|
|
69
69
|
break;
|
|
70
70
|
case "BG25_008":
|
|
@@ -132,7 +132,7 @@ const handleSpawnEffect = (board, boardHero, otherHero, spawned, allCards, spect
|
|
|
132
132
|
case "BG25_043":
|
|
133
133
|
case "BG25_043_G":
|
|
134
134
|
if (spawned.divineShield) {
|
|
135
|
-
spawned.attack += entity.cardId === "BG25_043_G" ?
|
|
135
|
+
spawned.attack += entity.cardId === "BG25_043_G" ? 16 : 8;
|
|
136
136
|
}
|
|
137
137
|
break;
|
|
138
138
|
case "TB_BaconShop_HERO_92_Buddy":
|
|
@@ -213,18 +213,6 @@ const handleSpawnEffect = (board, boardHero, otherHero, spawned, allCards, spect
|
|
|
213
213
|
case "TB_BaconShop_HP_061":
|
|
214
214
|
spawned.attack += 3;
|
|
215
215
|
break;
|
|
216
|
-
case "BG24_Reward_125":
|
|
217
|
-
spawned.attack += 5;
|
|
218
|
-
break;
|
|
219
|
-
case "BG24_Reward_364":
|
|
220
|
-
spawned.attack += 7;
|
|
221
|
-
spawned.health += 7;
|
|
222
|
-
spawned.enchantments.push({
|
|
223
|
-
cardId: "BG24_Reward_364e",
|
|
224
|
-
originEntityId: undefined,
|
|
225
|
-
timing: sharedState.currentEntityId++,
|
|
226
|
-
});
|
|
227
|
-
break;
|
|
228
216
|
case "TB_BaconShop_HP_107":
|
|
229
217
|
spawned.taunt = true;
|
|
230
218
|
utils_1.modifyAttack(spawned, 1, board, allCards);
|
|
@@ -243,6 +231,24 @@ const handleSpawnEffect = (board, boardHero, otherHero, spawned, allCards, spect
|
|
|
243
231
|
}
|
|
244
232
|
break;
|
|
245
233
|
}
|
|
234
|
+
if (!!((_b = boardHero.questRewards) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
235
|
+
for (const quest of boardHero.questRewards) {
|
|
236
|
+
switch (quest) {
|
|
237
|
+
case "BG24_Reward_364":
|
|
238
|
+
spawned.attack += 7;
|
|
239
|
+
spawned.health += 7;
|
|
240
|
+
spawned.enchantments.push({
|
|
241
|
+
cardId: "BG24_Reward_364e",
|
|
242
|
+
originEntityId: undefined,
|
|
243
|
+
timing: sharedState.currentEntityId++,
|
|
244
|
+
});
|
|
245
|
+
break;
|
|
246
|
+
case "BG24_Reward_125":
|
|
247
|
+
spawned.attack += 5;
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
246
252
|
};
|
|
247
253
|
const handleAfterSpawnEffects = (board, allSpawned, allCards, spectator) => {
|
|
248
254
|
for (const spawned of allSpawned) {
|
|
@@ -274,7 +280,7 @@ const handleAfterSpawnEffect = (board, spawned, allCards, spectator) => {
|
|
|
274
280
|
break;
|
|
275
281
|
case "BG25_042":
|
|
276
282
|
case "BG25_042_G":
|
|
277
|
-
const felstomperBuff = entity.cardId === "BG25_042_G" ?
|
|
283
|
+
const felstomperBuff = entity.cardId === "BG25_042_G" ? 4 : 2;
|
|
278
284
|
board.forEach((e) => {
|
|
279
285
|
utils_1.modifyAttack(e, felstomperBuff, board, allCards);
|
|
280
286
|
utils_1.afterStatsUpdate(e, board, allCards);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-minion-to-board.js","sourceRoot":"","sources":["../../src/simulation/add-minion-to-board.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { WHELP_CARD_IDS } from '../cards/cards-data';\r\nimport { afterStatsUpdate, hasCorrectTribe, isCorrectTribe, modifyAttack, modifyHealth, updateDivineShield } from '../utils';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const addMinionsToBoard = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tindex: number,\r\n\tminionsToAdd: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n): void => {\r\n\tboard.splice(index, 0, ...minionsToAdd);\r\n\tfor (const minionToAdd of [...minionsToAdd].reverse()) {\r\n\t\taddMinionToBoard(board, boardHero, otherHero, index, minionToAdd, allCards, spectator, sharedState, false);\r\n\t}\r\n\thandleAfterSpawnEffects(board, minionsToAdd, allCards, spectator);\r\n};\r\n\r\nexport const addMinionToBoard = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tindex: number,\r\n\tminionToAdd: BoardEntity,\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n\tperformAfterSpawnEffects = true,\r\n): void => {\r\n\tboard.splice(index, 0, minionToAdd);\r\n\t// Minion has already been removed from the board in the previous step\r\n\thandleSpawnEffect(board, boardHero, otherHero, minionToAdd, allCards, spectator, sharedState);\r\n\tif (performAfterSpawnEffects) {\r\n\t\thandleAfterSpawnEffects(board, [minionToAdd], allCards, spectator);\r\n\t}\r\n};\r\n\r\nconst handleSpawnEffect = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tspawned: BoardEntity,\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n): void => {\r\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\r\n\tfor (const spawnedCardId of cardIds) {\r\n\t\tswitch (spawnedCardId) {\r\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\r\n\t\t\tcase CardIds.SouthseaCaptainLegacyBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.PIRATE, allCards))\r\n\t\t\t\t\t// Other\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\t\te.health += spawned.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\r\n\t\t\tcase CardIds.MurlocWarleaderLegacyBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.MURLOC, allCards))\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.MurlocWarleaderLegacyBattlegrounds ? 4 : 2;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy:\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G:\r\n\t\t\t\tboard.forEach((e) => {\r\n\t\t\t\t\te.attack += spawned.cardId === CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G ? 6 : 3;\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Kathranatir_BG21_039:\r\n\t\t\tcase CardIds.KathranatirBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.DEMON, allCards))\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.KathranatirBattlegrounds ? 4 : 2;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CyborgDrake:\r\n\t\t\tcase CardIds.CyborgDrakeBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => e.divineShield)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.CyborgDrakeBattlegrounds ? 20 : 10;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.EternalKnight:\r\n\t\t\tcase CardIds.EternalKnightBattlegrounds:\r\n\t\t\t\tconst multiplierKnight = spawned.cardId === CardIds.EternalKnightBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\r\n\t\t\t\tmodifyAttack(spawned, statsBonusKnight, board, allCards);\r\n\t\t\t\tmodifyHealth(spawned, statsBonusKnight, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.RotHideGnoll:\r\n\t\t\tcase CardIds.RotHideGnollBattlegrounds:\r\n\t\t\t\tconst multiplierGnoll = spawned.cardId === CardIds.RotHideGnollBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst statsBonusGnoll = multiplierGnoll * sharedState.deaths.filter((e) => e.friendly === spawned.friendly).length;\r\n\t\t\t\tmodifyAttack(spawned, statsBonusGnoll, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (hasCorrectTribe(spawned, Race.UNDEAD, allCards)) {\r\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\r\n\t\t\tmodifyAttack(spawned, boardHero.globalInfo.UndeadAttackBonus, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t}\r\n\t}\r\n\r\n\t// https://twitter.com/LoewenMitchell/status/1491879869457879040\r\n\tif (cardIds.some((cardId) => WHELP_CARD_IDS.includes(cardId as CardIds))) {\r\n\t\tconst manyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps);\r\n\t\tconst goldenManyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelpsBattlegrounds);\r\n\t\tmanyWhelps.forEach((entity) => {\r\n\t\t\tmodifyAttack(entity, 2, board, allCards);\r\n\t\t\tmodifyHealth(entity, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t});\r\n\t\tgoldenManyWhelps.forEach((entity) => {\r\n\t\t\tmodifyAttack(entity, 4, board, allCards);\r\n\t\t\tmodifyHealth(entity, 4, board, allCards);\r\n\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\r\n\t\t\tcase CardIds.MurlocWarleaderLegacyBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MURLOC, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.MurlocWarleaderLegacyBattlegrounds ? 4 : 2;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\r\n\t\t\tcase CardIds.SouthseaCaptainLegacyBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.PIRATE, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\tspawned.health += entity.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy:\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G:\r\n\t\t\t\tspawned.attack += entity.cardId === CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G ? 6 : 3;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Kathranatir_BG21_039:\r\n\t\t\tcase CardIds.KathranatirBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.DEMON, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.KathranatirBattlegrounds ? 2 : 1;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CyborgDrake:\r\n\t\t\tcase CardIds.CyborgDrakeBattlegrounds:\r\n\t\t\t\tif (spawned.divineShield) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.CyborgDrakeBattlegrounds ? 20 : 10;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy:\r\n\t\t\tcase CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy_G:\r\n\t\t\t\tif (allCards.getCard(spawned.cardId).techLevel === boardHero.tavernTier) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy_G ? 8 : 4;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy:\r\n\t\t\tcase CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy_G:\r\n\t\t\t\tif (spawned.taunt) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy_G ? 4 : 2;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.CobaltGuardian:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\t\tif (!entity.divineShield) {\r\n\t\t\t\t\t\tupdateDivineShield(entity, board, true, allCards);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodifyAttack(entity, 2, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.DeflectOBot:\r\n\t\t\tcase CardIds.DeflectOBotBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.DeflectOBotBattlegrounds ? 4 : 2;\r\n\t\t\t\t\tif (!entity.divineShield) {\r\n\t\t\t\t\t\tupdateDivineShield(entity, board, true, allCards);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodifyAttack(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Bigfernal:\r\n\t\t\tcase CardIds.BigfernalBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.DEMON, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.BigfernalBattlegrounds ? 2 : 1;\r\n\t\t\t\t\tmodifyAttack(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MamaBear:\r\n\t\t\tcase CardIds.MamaBearBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.BEAST, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.MamaBearBattlegrounds ? 10 : 5;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.PackLeader:\r\n\t\t\tcase CardIds.PackLeaderBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.BEAST, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.PackLeaderBattlegrounds ? 4 : 2;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds) {\r\n\t\tspawned.attack += 3;\r\n\t}\r\n\r\n\tswitch (boardHero.heroPowerId) {\r\n\t\tcase CardIds.AllWillBurnBattlegrounds:\r\n\t\t\tspawned.attack += 3;\r\n\t\t\tbreak;\r\n\t\tcase CardIds.TheSmokingGun:\r\n\t\t\tspawned.attack += 5;\r\n\t\t\tbreak;\r\n\t\tcase CardIds.VolatileVenom:\r\n\t\t\tspawned.attack += 7;\r\n\t\t\tspawned.health += 7;\r\n\t\t\tspawned.enchantments.push({\r\n\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\ttiming: sharedState.currentEntityId++,\r\n\t\t\t});\r\n\t\t\tbreak;\r\n\t\tcase CardIds.SproutItOutBattlegrounds:\r\n\t\t\tspawned.taunt = true;\r\n\t\t\tmodifyAttack(spawned, 1, board, allCards);\r\n\t\t\tmodifyHealth(spawned, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\tbreak;\r\n\t\tcase CardIds.KurtrusAshfallen_CloseThePortal:\r\n\t\t\tmodifyAttack(spawned, 2, board, allCards);\r\n\t\t\tmodifyHealth(spawned, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\tbreak;\r\n\t\tcase CardIds.TinkerBattlegrounds:\r\n\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\tmodifyAttack(spawned, 2, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t}\r\n};\r\n\r\nconst handleAfterSpawnEffects = (\r\n\tboard: BoardEntity[],\r\n\tallSpawned: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n): void => {\r\n\tfor (const spawned of allSpawned) {\r\n\t\thandleAfterSpawnEffect(board, spawned, allCards, spectator);\r\n\t}\r\n};\r\n\r\nconst handleAfterSpawnEffect = (board: BoardEntity[], spawned: BoardEntity, allCards: AllCardsService, spectator: Spectator): void => {\r\n\t// console.debug('after spawn', stringifySimpleCard(spawned, allCards), stringifySimple(board, allCards));\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.MurlocTidecallerLegacy:\r\n\t\t\tcase CardIds.MurlocTidecallerBattlegrounds:\r\n\t\t\t\tconst multiplier = entity.cardId === CardIds.MurlocTidecallerBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst buffAmount = multiplier * (isCorrectTribe(allCards.getCard(spawned.cardId).races, Race.MURLOC) ? 1 : 0);\r\n\t\t\t\tif (buffAmount > 0) {\r\n\t\t\t\t\tmodifyAttack(entity, buffAmount, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Swampstriker:\r\n\t\t\tcase CardIds.SwampstrikerBattlegrounds:\r\n\t\t\t\tconst multiplier2 = entity.cardId === CardIds.SwampstrikerBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst buffAmount2 = multiplier2 * (isCorrectTribe(allCards.getCard(spawned.cardId).races, Race.MURLOC) ? 1 : 0);\r\n\t\t\t\tif (buffAmount2 > 0) {\r\n\t\t\t\t\tmodifyAttack(entity, buffAmount2, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Felstomper:\r\n\t\t\tcase CardIds.FelstomperBattlegrounds:\r\n\t\t\t\t// console.debug('felstomper');\r\n\t\t\t\tconst felstomperBuff = entity.cardId === CardIds.FelstomperBattlegrounds ? 6 : 3;\r\n\t\t\t\tboard.forEach((e) => {\r\n\t\t\t\t\tmodifyAttack(e, felstomperBuff, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(e, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, e, board);\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// Putricide-only\r\n\t\t\tcase CardIds.ArmsDealer_BG26_RLK_824:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.UNDEAD, allCards)) {\r\n\t\t\t\t\tmodifyAttack(spawned, 1, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"add-minion-to-board.js","sourceRoot":"","sources":["../../src/simulation/add-minion-to-board.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { WHELP_CARD_IDS } from '../cards/cards-data';\r\nimport { afterStatsUpdate, hasCorrectTribe, isCorrectTribe, modifyAttack, modifyHealth, updateDivineShield } from '../utils';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const addMinionsToBoard = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tindex: number,\r\n\tminionsToAdd: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n): void => {\r\n\tboard.splice(index, 0, ...minionsToAdd);\r\n\tfor (const minionToAdd of [...minionsToAdd].reverse()) {\r\n\t\taddMinionToBoard(board, boardHero, otherHero, index, minionToAdd, allCards, spectator, sharedState, false);\r\n\t}\r\n\thandleAfterSpawnEffects(board, minionsToAdd, allCards, spectator);\r\n};\r\n\r\nexport const addMinionToBoard = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tindex: number,\r\n\tminionToAdd: BoardEntity,\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n\tperformAfterSpawnEffects = true,\r\n): void => {\r\n\tboard.splice(index, 0, minionToAdd);\r\n\t// Minion has already been removed from the board in the previous step\r\n\thandleSpawnEffect(board, boardHero, otherHero, minionToAdd, allCards, spectator, sharedState);\r\n\tif (performAfterSpawnEffects) {\r\n\t\thandleAfterSpawnEffects(board, [minionToAdd], allCards, spectator);\r\n\t}\r\n};\r\n\r\nconst handleSpawnEffect = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\totherHero: BgsPlayerEntity,\r\n\tspawned: BoardEntity,\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n\tsharedState: SharedState,\r\n): void => {\r\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\r\n\tfor (const spawnedCardId of cardIds) {\r\n\t\tswitch (spawnedCardId) {\r\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\r\n\t\t\tcase CardIds.SouthseaCaptainLegacyBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.PIRATE, allCards))\r\n\t\t\t\t\t// Other\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\t\te.health += spawned.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\r\n\t\t\tcase CardIds.MurlocWarleaderLegacyBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.MURLOC, allCards))\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.MurlocWarleaderLegacyBattlegrounds ? 4 : 2;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy:\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G:\r\n\t\t\t\tboard.forEach((e) => {\r\n\t\t\t\t\te.attack += spawned.cardId === CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G ? 6 : 3;\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Kathranatir_BG21_039:\r\n\t\t\tcase CardIds.KathranatirBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => hasCorrectTribe(e, Race.DEMON, allCards))\r\n\t\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.KathranatirBattlegrounds ? 4 : 2;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CyborgDrake:\r\n\t\t\tcase CardIds.CyborgDrakeBattlegrounds:\r\n\t\t\t\tboard\r\n\t\t\t\t\t.filter((e) => e.divineShield)\r\n\t\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\t\te.attack += spawned.cardId === CardIds.CyborgDrakeBattlegrounds ? 16 : 8;\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.EternalKnight:\r\n\t\t\tcase CardIds.EternalKnightBattlegrounds:\r\n\t\t\t\tconst multiplierKnight = spawned.cardId === CardIds.EternalKnightBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\r\n\t\t\t\tmodifyAttack(spawned, statsBonusKnight, board, allCards);\r\n\t\t\t\tmodifyHealth(spawned, statsBonusKnight, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.RotHideGnoll:\r\n\t\t\tcase CardIds.RotHideGnollBattlegrounds:\r\n\t\t\t\tconst multiplierGnoll = spawned.cardId === CardIds.RotHideGnollBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst statsBonusGnoll = multiplierGnoll * sharedState.deaths.filter((e) => e.friendly === spawned.friendly).length;\r\n\t\t\t\tmodifyAttack(spawned, statsBonusGnoll, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (hasCorrectTribe(spawned, Race.UNDEAD, allCards)) {\r\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\r\n\t\t\tmodifyAttack(spawned, boardHero.globalInfo.UndeadAttackBonus, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t}\r\n\t}\r\n\r\n\t// https://twitter.com/LoewenMitchell/status/1491879869457879040\r\n\tif (cardIds.some((cardId) => WHELP_CARD_IDS.includes(cardId as CardIds))) {\r\n\t\tconst manyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps);\r\n\t\tconst goldenManyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelpsBattlegrounds);\r\n\t\tmanyWhelps.forEach((entity) => {\r\n\t\t\tmodifyAttack(entity, 2, board, allCards);\r\n\t\t\tmodifyHealth(entity, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t});\r\n\t\tgoldenManyWhelps.forEach((entity) => {\r\n\t\t\tmodifyAttack(entity, 4, board, allCards);\r\n\t\t\tmodifyHealth(entity, 4, board, allCards);\r\n\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t});\r\n\t}\r\n\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\r\n\t\t\tcase CardIds.MurlocWarleaderLegacyBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MURLOC, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.MurlocWarleaderLegacyBattlegrounds ? 4 : 2;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\r\n\t\t\tcase CardIds.SouthseaCaptainLegacyBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.PIRATE, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t\tspawned.health += entity.cardId === CardIds.SouthseaCaptainLegacyBattlegrounds ? 2 : 1;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy:\r\n\t\t\tcase CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G:\r\n\t\t\t\tspawned.attack += entity.cardId === CardIds.LadySinestraBattlegrounds_TB_BaconShop_HERO_52_Buddy_G ? 6 : 3;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Kathranatir_BG21_039:\r\n\t\t\tcase CardIds.KathranatirBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.DEMON, allCards) && entity.entityId !== spawned.entityId) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.KathranatirBattlegrounds ? 2 : 1;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CyborgDrake:\r\n\t\t\tcase CardIds.CyborgDrakeBattlegrounds:\r\n\t\t\t\tif (spawned.divineShield) {\r\n\t\t\t\t\tspawned.attack += entity.cardId === CardIds.CyborgDrakeBattlegrounds ? 16 : 8;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy:\r\n\t\t\tcase CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy_G:\r\n\t\t\t\tif (allCards.getCard(spawned.cardId).techLevel === boardHero.tavernTier) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.BabyYshaarjBattlegrounds_TB_BaconShop_HERO_92_Buddy_G ? 8 : 4;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy:\r\n\t\t\tcase CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy_G:\r\n\t\t\t\tif (spawned.taunt) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.WanderingTreantBattlegrounds_TB_BaconShop_HERO_95_Buddy_G ? 4 : 2;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase CardIds.CobaltGuardian:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\t\tif (!entity.divineShield) {\r\n\t\t\t\t\t\tupdateDivineShield(entity, board, true, allCards);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodifyAttack(entity, 2, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.DeflectOBot:\r\n\t\t\tcase CardIds.DeflectOBotBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.DeflectOBotBattlegrounds ? 4 : 2;\r\n\t\t\t\t\tif (!entity.divineShield) {\r\n\t\t\t\t\t\tupdateDivineShield(entity, board, true, allCards);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodifyAttack(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Bigfernal:\r\n\t\t\tcase CardIds.BigfernalBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.DEMON, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.BigfernalBattlegrounds ? 2 : 1;\r\n\t\t\t\t\tmodifyAttack(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(entity, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MamaBear:\r\n\t\t\tcase CardIds.MamaBearBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.BEAST, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.MamaBearBattlegrounds ? 10 : 5;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tmodifyHealth(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.PackLeader:\r\n\t\t\tcase CardIds.PackLeaderBattlegrounds:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.BEAST, allCards)) {\r\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.PackLeaderBattlegrounds ? 4 : 2;\r\n\t\t\t\t\tmodifyAttack(spawned, statsBonus, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tif (otherHero.heroPowerId === CardIds.AllWillBurnBattlegrounds) {\r\n\t\tspawned.attack += 3;\r\n\t}\r\n\r\n\tswitch (boardHero.heroPowerId) {\r\n\t\tcase CardIds.AllWillBurnBattlegrounds:\r\n\t\t\tspawned.attack += 3;\r\n\t\t\tbreak;\r\n\t\tcase CardIds.SproutItOutBattlegrounds:\r\n\t\t\tspawned.taunt = true;\r\n\t\t\tmodifyAttack(spawned, 1, board, allCards);\r\n\t\t\tmodifyHealth(spawned, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\tbreak;\r\n\t\tcase CardIds.KurtrusAshfallen_CloseThePortal:\r\n\t\t\tmodifyAttack(spawned, 2, board, allCards);\r\n\t\t\tmodifyHealth(spawned, 2, board, allCards);\r\n\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\tbreak;\r\n\t\tcase CardIds.TinkerBattlegrounds:\r\n\t\t\tif (hasCorrectTribe(spawned, Race.MECH, allCards)) {\r\n\t\t\t\tmodifyAttack(spawned, 2, board, allCards);\r\n\t\t\t\tafterStatsUpdate(spawned, board, allCards);\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tif (!!boardHero.questRewards?.length) {\r\n\t\tfor (const quest of boardHero.questRewards) {\r\n\t\t\tswitch (quest) {\r\n\t\t\t\tcase CardIds.VolatileVenom:\r\n\t\t\t\t\tspawned.attack += 7;\r\n\t\t\t\t\tspawned.health += 7;\r\n\t\t\t\t\tspawned.enchantments.push({\r\n\t\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\t\ttiming: sharedState.currentEntityId++,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheSmokingGun:\r\n\t\t\t\t\tspawned.attack += 5;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst handleAfterSpawnEffects = (\r\n\tboard: BoardEntity[],\r\n\tallSpawned: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspectator: Spectator,\r\n): void => {\r\n\tfor (const spawned of allSpawned) {\r\n\t\thandleAfterSpawnEffect(board, spawned, allCards, spectator);\r\n\t}\r\n};\r\n\r\nconst handleAfterSpawnEffect = (board: BoardEntity[], spawned: BoardEntity, allCards: AllCardsService, spectator: Spectator): void => {\r\n\t// console.debug('after spawn', stringifySimpleCard(spawned, allCards), stringifySimple(board, allCards));\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.MurlocTidecallerLegacy:\r\n\t\t\tcase CardIds.MurlocTidecallerBattlegrounds:\r\n\t\t\t\tconst multiplier = entity.cardId === CardIds.MurlocTidecallerBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst buffAmount = multiplier * (isCorrectTribe(allCards.getCard(spawned.cardId).races, Race.MURLOC) ? 1 : 0);\r\n\t\t\t\tif (buffAmount > 0) {\r\n\t\t\t\t\tmodifyAttack(entity, buffAmount, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Swampstriker:\r\n\t\t\tcase CardIds.SwampstrikerBattlegrounds:\r\n\t\t\t\tconst multiplier2 = entity.cardId === CardIds.SwampstrikerBattlegrounds ? 2 : 1;\r\n\t\t\t\tconst buffAmount2 = multiplier2 * (isCorrectTribe(allCards.getCard(spawned.cardId).races, Race.MURLOC) ? 1 : 0);\r\n\t\t\t\tif (buffAmount2 > 0) {\r\n\t\t\t\t\tmodifyAttack(entity, buffAmount2, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Felstomper:\r\n\t\t\tcase CardIds.FelstomperBattlegrounds:\r\n\t\t\t\t// console.debug('felstomper');\r\n\t\t\t\tconst felstomperBuff = entity.cardId === CardIds.FelstomperBattlegrounds ? 4 : 2;\r\n\t\t\t\tboard.forEach((e) => {\r\n\t\t\t\t\tmodifyAttack(e, felstomperBuff, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(e, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, e, board);\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\r\n\t\t\t// Putricide-only\r\n\t\t\tcase CardIds.ArmsDealer_BG26_RLK_824:\r\n\t\t\t\tif (hasCorrectTribe(spawned, Race.UNDEAD, allCards)) {\r\n\t\t\t\t\tmodifyAttack(spawned, 1, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n};\r\n"]}
|
|
@@ -505,13 +505,13 @@ const applyOnAttackBuffs = (attacker, attackingBoard, allCards, spectator) => {
|
|
|
505
505
|
.filter((entity) => entity.cardId === "TB_BaconUps_139")
|
|
506
506
|
.filter((e) => e.entityId !== attacker.entityId);
|
|
507
507
|
ripsnarls.forEach((captain) => {
|
|
508
|
-
utils_2.modifyAttack(attacker,
|
|
509
|
-
utils_2.modifyHealth(attacker,
|
|
508
|
+
utils_2.modifyAttack(attacker, 3, attackingBoard, allCards);
|
|
509
|
+
utils_2.modifyHealth(attacker, 3, attackingBoard, allCards);
|
|
510
510
|
spectator.registerPowerTarget(captain, attacker, attackingBoard);
|
|
511
511
|
});
|
|
512
512
|
ripsnarlsTB.forEach((captain) => {
|
|
513
|
-
utils_2.modifyAttack(attacker,
|
|
514
|
-
utils_2.modifyHealth(attacker,
|
|
513
|
+
utils_2.modifyAttack(attacker, 6, attackingBoard, allCards);
|
|
514
|
+
utils_2.modifyHealth(attacker, 6, attackingBoard, allCards);
|
|
515
515
|
spectator.registerPowerTarget(captain, attacker, attackingBoard);
|
|
516
516
|
});
|
|
517
517
|
}
|
|
@@ -538,7 +538,7 @@ const applyOnAttackBuffs = (attacker, attackingBoard, allCards, spectator) => {
|
|
|
538
538
|
.filter((e) => utils_2.isCorrectTribe(allCards.getCard(e.cardId).races, reference_data_1.Race.PIRATE))
|
|
539
539
|
.forEach((e) => {
|
|
540
540
|
utils_2.modifyAttack(e, attacker.cardId === "BG24_708_G" ? 4 : 2, attackingBoard, allCards);
|
|
541
|
-
utils_2.modifyHealth(e, attacker.cardId === "BG24_708_G" ?
|
|
541
|
+
utils_2.modifyHealth(e, attacker.cardId === "BG24_708_G" ? 4 : 2, attackingBoard, allCards);
|
|
542
542
|
spectator.registerPowerTarget(attacker, e, attackingBoard);
|
|
543
543
|
});
|
|
544
544
|
}
|
|
@@ -673,7 +673,7 @@ const buildBoardAfterRebornSpawns = (boardWithKilledMinion, boardWithKilledMinio
|
|
|
673
673
|
.filter((e) => e.cardId === "BG25_020" || e.cardId === "BG25_020_G")
|
|
674
674
|
.forEach((e) => {
|
|
675
675
|
const multiplier = e.cardId === "BG25_020_G" ? 2 : 1;
|
|
676
|
-
utils_2.addStatsToBoard(e, boardWithKilledMinion, multiplier * 1, multiplier *
|
|
676
|
+
utils_2.addStatsToBoard(e, boardWithKilledMinion, multiplier * 1, multiplier * 2, allCards, spectator, reference_data_1.Race[reference_data_1.Race.UNDEAD]);
|
|
677
677
|
});
|
|
678
678
|
boardWithKilledMinion
|
|
679
679
|
.filter((e) => e.cardId === "BG25_005" || e.cardId === "BG25_005_G")
|