@firestone-hs/simulate-bgs-battle 1.1.486 → 1.1.488
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/bgs-player-entity.d.ts +2 -1
- package/dist/bgs-player-entity.js.map +1 -1
- package/dist/board-entity.d.ts +1 -0
- package/dist/board-entity.js.map +1 -1
- package/dist/cards/card.interface.d.ts +12 -0
- package/dist/cards/card.interface.js +3 -0
- package/dist/cards/card.interface.js.map +1 -0
- package/dist/cards/cards-data.js +16 -3
- package/dist/cards/cards-data.js.map +1 -1
- package/dist/cards/impl/anomaly/anomalous-twin.d.ts +8 -0
- package/dist/cards/impl/anomaly/anomalous-twin.js +24 -0
- package/dist/cards/impl/anomaly/anomalous-twin.js.map +1 -0
- package/dist/cards/impl/anomaly/blessed-or-blighted.d.ts +5 -0
- package/dist/cards/impl/anomaly/blessed-or-blighted.js +16 -0
- package/dist/cards/impl/anomaly/blessed-or-blighted.js.map +1 -0
- package/dist/cards/impl/hero-power/aim-high.d.ts +5 -0
- package/dist/cards/impl/hero-power/aim-high.js +18 -0
- package/dist/cards/impl/hero-power/aim-high.js.map +1 -0
- package/dist/cards/impl/hero-power/aim-left.d.ts +5 -0
- package/dist/cards/impl/hero-power/aim-left.js +16 -0
- package/dist/cards/impl/hero-power/aim-left.js.map +1 -0
- package/dist/cards/impl/hero-power/aim-low.d.ts +5 -0
- package/dist/cards/impl/hero-power/aim-low.js +18 -0
- package/dist/cards/impl/hero-power/aim-low.js.map +1 -0
- package/dist/cards/impl/hero-power/aim-right.d.ts +5 -0
- package/dist/cards/impl/hero-power/aim-right.js +16 -0
- package/dist/cards/impl/hero-power/aim-right.js.map +1 -0
- package/dist/cards/impl/hero-power/all-will-burn.d.ts +5 -0
- package/dist/cards/impl/hero-power/all-will-burn.js +18 -0
- package/dist/cards/impl/hero-power/all-will-burn.js.map +1 -0
- package/dist/cards/impl/hero-power/earth-invocation.d.ts +5 -0
- package/dist/cards/impl/hero-power/earth-invocation.js +13 -0
- package/dist/cards/impl/hero-power/earth-invocation.js.map +1 -0
- package/dist/cards/impl/hero-power/embrace-your-rage.d.ts +8 -0
- package/dist/cards/impl/hero-power/embrace-your-rage.js +26 -0
- package/dist/cards/impl/hero-power/embrace-your-rage.js.map +1 -0
- package/dist/cards/impl/hero-power/fire-invocation.d.ts +5 -0
- package/dist/cards/impl/hero-power/fire-invocation.js +13 -0
- package/dist/cards/impl/hero-power/fire-invocation.js.map +1 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery.d.ts +8 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery.js +25 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery.js.map +1 -0
- package/dist/cards/impl/hero-power/glorious-gloop.d.ts +5 -0
- package/dist/cards/impl/hero-power/glorious-gloop.js +40 -0
- package/dist/cards/impl/hero-power/glorious-gloop.js.map +1 -0
- package/dist/cards/impl/hero-power/lightning-invocation.d.ts +5 -0
- package/dist/cards/impl/hero-power/lightning-invocation.js +13 -0
- package/dist/cards/impl/hero-power/lightning-invocation.js.map +1 -0
- package/dist/cards/impl/hero-power/rapid-reanimation.d.ts +8 -0
- package/dist/cards/impl/hero-power/rapid-reanimation.js +29 -0
- package/dist/cards/impl/hero-power/rapid-reanimation.js.map +1 -0
- package/dist/cards/impl/hero-power/reborn-rites.d.ts +5 -0
- package/dist/cards/impl/hero-power/reborn-rites.js +18 -0
- package/dist/cards/impl/hero-power/reborn-rites.js.map +1 -0
- package/dist/cards/impl/hero-power/swatting-insects.d.ts +5 -0
- package/dist/cards/impl/hero-power/swatting-insects.js +21 -0
- package/dist/cards/impl/hero-power/swatting-insects.js.map +1 -0
- package/dist/cards/impl/hero-power/tentacular.d.ts +8 -0
- package/dist/cards/impl/hero-power/tentacular.js +10 -0
- package/dist/cards/impl/hero-power/tentacular.js.map +1 -0
- package/dist/cards/impl/hero-power/water-invocation.d.ts +5 -0
- package/dist/cards/impl/hero-power/water-invocation.js +13 -0
- package/dist/cards/impl/hero-power/water-invocation.js.map +1 -0
- package/dist/cards/impl/hero-power/wax-warband.d.ts +5 -0
- package/dist/cards/impl/hero-power/wax-warband.js +56 -0
- package/dist/cards/impl/hero-power/wax-warband.js.map +1 -0
- package/dist/cards/impl/minion/amber-guardian.d.ts +5 -0
- package/dist/cards/impl/minion/amber-guardian.js +31 -0
- package/dist/cards/impl/minion/amber-guardian.js.map +1 -0
- package/dist/cards/impl/minion/audacious-anchor.d.ts +5 -0
- package/dist/cards/impl/minion/audacious-anchor.js +25 -0
- package/dist/cards/impl/minion/audacious-anchor.js.map +1 -0
- package/dist/cards/impl/minion/carbonic-copy.d.ts +5 -0
- package/dist/cards/impl/minion/carbonic-copy.js +24 -0
- package/dist/cards/impl/minion/carbonic-copy.js.map +1 -0
- package/dist/cards/impl/minion/choral-mrrrglr.d.ts +5 -0
- package/dist/cards/impl/minion/choral-mrrrglr.js +14 -0
- package/dist/cards/impl/minion/choral-mrrrglr.js.map +1 -0
- package/dist/cards/impl/minion/corrupted-myrmidon.d.ts +5 -0
- package/dist/cards/impl/minion/corrupted-myrmidon.js +13 -0
- package/dist/cards/impl/minion/corrupted-myrmidon.js.map +1 -0
- package/dist/cards/impl/minion/crabby.d.ts +5 -0
- package/dist/cards/impl/minion/crabby.js +18 -0
- package/dist/cards/impl/minion/crabby.js.map +1 -0
- package/dist/cards/impl/minion/diremuck-forager.d.ts +5 -0
- package/dist/cards/impl/minion/diremuck-forager.js +32 -0
- package/dist/cards/impl/minion/diremuck-forager.js.map +1 -0
- package/dist/cards/impl/minion/elder-taggawag.d.ts +5 -0
- package/dist/cards/impl/minion/elder-taggawag.js +19 -0
- package/dist/cards/impl/minion/elder-taggawag.js.map +1 -0
- package/dist/cards/impl/minion/hawkstrider-herald.d.ts +5 -0
- package/dist/cards/impl/minion/hawkstrider-herald.js +27 -0
- package/dist/cards/impl/minion/hawkstrider-herald.js.map +1 -0
- package/dist/cards/impl/minion/hoarding-hatespawn.d.ts +5 -0
- package/dist/cards/impl/minion/hoarding-hatespawn.js +22 -0
- package/dist/cards/impl/minion/hoarding-hatespawn.js.map +1 -0
- package/dist/cards/impl/minion/humming-bird.d.ts +5 -0
- package/dist/cards/impl/minion/humming-bird.js +15 -0
- package/dist/cards/impl/minion/humming-bird.js.map +1 -0
- package/dist/cards/impl/minion/interrogator-whitemane.d.ts +5 -0
- package/dist/cards/impl/minion/interrogator-whitemane.js +33 -0
- package/dist/cards/impl/minion/interrogator-whitemane.js.map +1 -0
- package/dist/cards/impl/minion/irate-rooster.d.ts +5 -0
- package/dist/cards/impl/minion/irate-rooster.js +20 -0
- package/dist/cards/impl/minion/irate-rooster.js.map +1 -0
- package/dist/cards/impl/minion/mantid-queen.d.ts +5 -0
- package/dist/cards/impl/minion/mantid-queen.js +52 -0
- package/dist/cards/impl/minion/mantid-queen.js.map +1 -0
- package/dist/cards/impl/minion/misfit-dragonling.d.ts +5 -0
- package/dist/cards/impl/minion/misfit-dragonling.js +15 -0
- package/dist/cards/impl/minion/misfit-dragonling.js.map +1 -0
- package/dist/cards/impl/minion/piloted-whirl-o-tron.d.ts +5 -0
- package/dist/cards/impl/minion/piloted-whirl-o-tron.js +13 -0
- package/dist/cards/impl/minion/piloted-whirl-o-tron.js.map +1 -0
- package/dist/cards/impl/minion/prized-promo-drake.d.ts +5 -0
- package/dist/cards/impl/minion/prized-promo-drake.js +22 -0
- package/dist/cards/impl/minion/prized-promo-drake.js.map +1 -0
- package/dist/cards/impl/minion/red-whelp.d.ts +5 -0
- package/dist/cards/impl/minion/red-whelp.js +17 -0
- package/dist/cards/impl/minion/red-whelp.js.map +1 -0
- package/dist/cards/impl/minion/sanctum-rester.d.ts +5 -0
- package/dist/cards/impl/minion/sanctum-rester.js +20 -0
- package/dist/cards/impl/minion/sanctum-rester.js.map +1 -0
- package/dist/cards/impl/minion/sandy.d.ts +5 -0
- package/dist/cards/impl/minion/sandy.js +23 -0
- package/dist/cards/impl/minion/sandy.js.map +1 -0
- package/dist/cards/impl/minion/sky-pirate-flagbearer.d.ts +5 -0
- package/dist/cards/impl/minion/sky-pirate-flagbearer.js +24 -0
- package/dist/cards/impl/minion/sky-pirate-flagbearer.js.map +1 -0
- package/dist/cards/impl/minion/soulsplitter.d.ts +5 -0
- package/dist/cards/impl/minion/soulsplitter.js +23 -0
- package/dist/cards/impl/minion/soulsplitter.js.map +1 -0
- package/dist/cards/impl/minion/sun-screener.d.ts +5 -0
- package/dist/cards/impl/minion/sun-screener.js +15 -0
- package/dist/cards/impl/minion/sun-screener.js.map +1 -0
- package/dist/cards/impl/minion/the-uninvited-guest.d.ts +5 -0
- package/dist/cards/impl/minion/the-uninvited-guest.js +24 -0
- package/dist/cards/impl/minion/the-uninvited-guest.js.map +1 -0
- package/dist/cards/impl/minion/thousandth-paper-drake.d.ts +5 -0
- package/dist/cards/impl/minion/thousandth-paper-drake.js +24 -0
- package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -0
- package/dist/cards/impl/minion/vaelastrasz.d.ts +5 -0
- package/dist/cards/impl/minion/vaelastrasz.js +17 -0
- package/dist/cards/impl/minion/vaelastrasz.js.map +1 -0
- package/dist/cards/impl/minion/yulon-fortune-granter.d.ts +5 -0
- package/dist/cards/impl/minion/yulon-fortune-granter.js +26 -0
- package/dist/cards/impl/minion/yulon-fortune-granter.js.map +1 -0
- package/dist/cards/impl/quest-reward/evil-twin.d.ts +5 -0
- package/dist/cards/impl/quest-reward/evil-twin.js +32 -0
- package/dist/cards/impl/quest-reward/evil-twin.js.map +1 -0
- package/dist/cards/impl/quest-reward/staff-of-origination.d.ts +5 -0
- package/dist/cards/impl/quest-reward/staff-of-origination.js +14 -0
- package/dist/cards/impl/quest-reward/staff-of-origination.js.map +1 -0
- package/dist/cards/impl/quest-reward/stolen-gold.d.ts +5 -0
- package/dist/cards/impl/quest-reward/stolen-gold.js +16 -0
- package/dist/cards/impl/quest-reward/stolen-gold.js.map +1 -0
- package/dist/cards/impl/trinket/artisanal-urn.d.ts +5 -0
- package/dist/cards/impl/trinket/artisanal-urn.js +13 -0
- package/dist/cards/impl/trinket/artisanal-urn.js.map +1 -0
- package/dist/cards/impl/trinket/automaton-portrait.d.ts +5 -0
- package/dist/cards/impl/trinket/automaton-portrait.js +15 -0
- package/dist/cards/impl/trinket/automaton-portrait.js.map +1 -0
- package/dist/cards/impl/trinket/bronze-timepiece.d.ts +5 -0
- package/dist/cards/impl/trinket/bronze-timepiece.js +17 -0
- package/dist/cards/impl/trinket/bronze-timepiece.js.map +1 -0
- package/dist/cards/impl/trinket/emerald-dreamcatcher.d.ts +5 -0
- package/dist/cards/impl/trinket/emerald-dreamcatcher.js +18 -0
- package/dist/cards/impl/trinket/emerald-dreamcatcher.js.map +1 -0
- package/dist/cards/impl/trinket/eternal-portrait.d.ts +5 -0
- package/dist/cards/impl/trinket/eternal-portrait.js +19 -0
- package/dist/cards/impl/trinket/eternal-portrait.js.map +1 -0
- package/dist/cards/impl/trinket/fishy-sticker.d.ts +5 -0
- package/dist/cards/impl/trinket/fishy-sticker.js +28 -0
- package/dist/cards/impl/trinket/fishy-sticker.js.map +1 -0
- package/dist/cards/impl/trinket/hoggy-bank.d.ts +5 -0
- package/dist/cards/impl/trinket/hoggy-bank.js +23 -0
- package/dist/cards/impl/trinket/hoggy-bank.js.map +1 -0
- package/dist/cards/impl/trinket/holly-mallet.d.ts +5 -0
- package/dist/cards/impl/trinket/holly-mallet.js +18 -0
- package/dist/cards/impl/trinket/holly-mallet.js.map +1 -0
- package/dist/cards/impl/trinket/ironforge-anvil.d.ts +5 -0
- package/dist/cards/impl/trinket/ironforge-anvil.js +23 -0
- package/dist/cards/impl/trinket/ironforge-anvil.js.map +1 -0
- package/dist/cards/impl/trinket/jarred-frostling.d.ts +5 -0
- package/dist/cards/impl/trinket/jarred-frostling.js +27 -0
- package/dist/cards/impl/trinket/jarred-frostling.js.map +1 -0
- package/dist/cards/impl/trinket/karazhan-chess-set.d.ts +5 -0
- package/dist/cards/impl/trinket/karazhan-chess-set.js +40 -0
- package/dist/cards/impl/trinket/karazhan-chess-set.js.map +1 -0
- package/dist/cards/impl/trinket/rivendare-portrait.d.ts +5 -0
- package/dist/cards/impl/trinket/rivendare-portrait.js +21 -0
- package/dist/cards/impl/trinket/rivendare-portrait.js.map +1 -0
- package/dist/cards/impl/trinket/rusty-trident.d.ts +5 -0
- package/dist/cards/impl/trinket/rusty-trident.js +23 -0
- package/dist/cards/impl/trinket/rusty-trident.js.map +1 -0
- package/dist/cards/impl/trinket/ship-in-a-bottle.d.ts +5 -0
- package/dist/cards/impl/trinket/ship-in-a-bottle.js +20 -0
- package/dist/cards/impl/trinket/ship-in-a-bottle.js.map +1 -0
- package/dist/cards/impl/trinket/summoning-sphere.d.ts +5 -0
- package/dist/cards/impl/trinket/summoning-sphere.js +31 -0
- package/dist/cards/impl/trinket/summoning-sphere.js.map +1 -0
- package/dist/cards/impl/trinket/tinyfin-onesie.d.ts +5 -0
- package/dist/cards/impl/trinket/tinyfin-onesie.js +15 -0
- package/dist/cards/impl/trinket/tinyfin-onesie.js.map +1 -0
- package/dist/cards/impl/trinket/training-certificate.d.ts +5 -0
- package/dist/cards/impl/trinket/training-certificate.js +21 -0
- package/dist/cards/impl/trinket/training-certificate.js.map +1 -0
- package/dist/cards/impl/trinket/valorous-medaillion.d.ts +5 -0
- package/dist/cards/impl/trinket/valorous-medaillion.js +12 -0
- package/dist/cards/impl/trinket/valorous-medaillion.js.map +1 -0
- package/dist/services/utils.d.ts +1 -0
- package/dist/services/utils.js +13 -1
- package/dist/services/utils.js.map +1 -1
- package/dist/simulation/add-minion-to-board.js +18 -23
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/attack.js +14 -4
- package/dist/simulation/attack.js.map +1 -1
- package/dist/simulation/auras.js +0 -2
- package/dist/simulation/auras.js.map +1 -1
- package/dist/simulation/avenge.js +24 -4
- package/dist/simulation/avenge.js.map +1 -1
- package/dist/simulation/battlecries.js +21 -5
- package/dist/simulation/battlecries.js.map +1 -1
- package/dist/simulation/blood-gems.js +8 -0
- package/dist/simulation/blood-gems.js.map +1 -1
- package/dist/simulation/deathrattle-effects.js +7 -1
- package/dist/simulation/deathrattle-effects.js.map +1 -1
- package/dist/simulation/deathrattle-on-trigger.js +5 -0
- package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
- package/dist/simulation/discover.d.ts +4 -0
- package/dist/simulation/discover.js +32 -0
- package/dist/simulation/discover.js.map +1 -0
- package/dist/simulation/magnetize.js +2 -1
- package/dist/simulation/magnetize.js.map +1 -1
- package/dist/simulation/minion-death.d.ts +1 -1
- package/dist/simulation/minion-death.js +8 -8
- package/dist/simulation/minion-death.js.map +1 -1
- package/dist/simulation/remove-minion-from-board.js +0 -10
- package/dist/simulation/remove-minion-from-board.js.map +1 -1
- package/dist/simulation/simulator.js +1 -1
- package/dist/simulation/simulator.js.map +1 -1
- package/dist/simulation/start-of-combat/phases.d.ts +1 -0
- package/dist/simulation/start-of-combat/phases.js +3 -0
- package/dist/simulation/start-of-combat/phases.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-action-processor.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-action-processor.js +286 -0
- package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-anomalies.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-anomalies.js +39 -0
- package/dist/simulation/start-of-combat/soc-anomalies.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-hero-power.d.ts +5 -0
- package/dist/simulation/start-of-combat/soc-hero-power.js +77 -0
- package/dist/simulation/start-of-combat/soc-hero-power.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-illidan-hero-power.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-illidan-hero-power.js +55 -0
- package/dist/simulation/start-of-combat/soc-illidan-hero-power.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-minion.d.ts +6 -0
- package/dist/simulation/start-of-combat/soc-minion.js +68 -0
- package/dist/simulation/start-of-combat/soc-minion.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.js +72 -0
- package/dist/simulation/start-of-combat/soc-pre-combat-hero-power.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-quest-reward.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-quest-reward.js +60 -0
- package/dist/simulation/start-of-combat/soc-quest-reward.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-secret.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-secret.js +54 -0
- package/dist/simulation/start-of-combat/soc-secret.js.map +1 -0
- package/dist/simulation/start-of-combat/soc-trinket.d.ts +4 -0
- package/dist/simulation/start-of-combat/soc-trinket.js +60 -0
- package/dist/simulation/start-of-combat/soc-trinket.js.map +1 -0
- package/dist/simulation/start-of-combat/start-of-combat-input.d.ts +14 -0
- package/dist/simulation/start-of-combat/start-of-combat-input.js +3 -0
- package/dist/simulation/start-of-combat/start-of-combat-input.js.map +1 -0
- package/dist/simulation/start-of-combat/start-of-combat.d.ts +4 -0
- package/dist/simulation/start-of-combat/start-of-combat.js +68 -0
- package/dist/simulation/start-of-combat/start-of-combat.js.map +1 -0
- package/dist/simulation/summon-when-space.js +5 -1
- package/dist/simulation/summon-when-space.js.map +1 -1
- package/dist/temp-card-ids.d.ts +2 -0
- package/dist/temp-card-ids.js +3 -0
- package/dist/temp-card-ids.js.map +1 -0
- package/package.json +3 -3
- package/dist/simulation/start-of-combat.d.ts +0 -8
- package/dist/simulation/start-of-combat.js +0 -1167
- package/dist/simulation/start-of-combat.js.map +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DiremuckForager = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const utils_1 = require("../../../services/utils");
|
|
6
|
+
const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
7
|
+
const spawns_1 = require("../../../simulation/spawns");
|
|
8
|
+
const stats_1 = require("../../../simulation/stats");
|
|
9
|
+
exports.DiremuckForager = {
|
|
10
|
+
startOfCombat: (minion, input) => {
|
|
11
|
+
const potentialTargets = input.playerEntity.hand
|
|
12
|
+
.filter((e) => !!e.cardId)
|
|
13
|
+
.filter((e) => { var _a; return ((_a = input.gameState.allCards.getCard(e.cardId).type) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === reference_data_1.CardType[reference_data_1.CardType.MINION]; })
|
|
14
|
+
.filter((e) => !e.locked);
|
|
15
|
+
if (potentialTargets.length > 0) {
|
|
16
|
+
const target = (0, utils_1.pickRandom)(potentialTargets);
|
|
17
|
+
const diremuckBuff = minion.cardId === "BG27_556_G" ? 4 : 2;
|
|
18
|
+
(0, stats_1.modifyStats)(target, diremuckBuff, diremuckBuff, input.playerBoard, input.playerEntity, input.gameState);
|
|
19
|
+
input.gameState.spectator.registerPowerTarget(minion, target, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
20
|
+
if (input.playerBoard.length < 7) {
|
|
21
|
+
target.locked = true;
|
|
22
|
+
const newMinions = (0, deathrattle_spawns_1.spawnEntities)(target.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState.allCards, input.gameState.cardsData, input.gameState.sharedState, input.gameState.spectator, minion.friendly, false, false, true, { ...target });
|
|
23
|
+
for (const s of newMinions) {
|
|
24
|
+
s.onCanceledSummon = () => (target.locked = false);
|
|
25
|
+
}
|
|
26
|
+
(0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, minion, input.playerBoard.length - (input.playerBoard.indexOf(minion) + 1), input.opponentBoard, input.opponentEntity, input.gameState);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=diremuck-forager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diremuck-forager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/diremuck-forager.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AAEjE,mDAAqD;AACrD,+EAAuE;AACvE,uDAAiE;AAEjE,qDAAwD;AAE3C,QAAA,eAAe,GAAG;IAC9B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,0CAAE,WAAW,EAAE,MAAK,yBAAQ,CAAC,yBAAQ,CAAC,MAAM,CAAC,CAAA,EAAA,CAAC;aAC3G,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,gBAAgB,CAAC,CAAC;YAO5C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClF,IAAA,mBAAW,EAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACxG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YAEF,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;gBACrB,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,MAAM,CAAC,MAAM,EACb,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,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,MAAM,EAAiB,CAC5B,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;oBAC3B,CAAC,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;iBACnD;gBACD,IAAA,4BAAmB,EAClB,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAClE,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, CardType } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } 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 { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const DiremuckForager = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst potentialTargets = input.playerEntity.hand\r\n\t\t\t.filter((e) => !!e.cardId)\r\n\t\t\t.filter((e) => input.gameState.allCards.getCard(e.cardId).type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((e) => !e.locked);\r\n\t\tif (potentialTargets.length > 0) {\r\n\t\t\tconst target = pickRandom(potentialTargets);\r\n\t\t\t// When it's the opponent, the game state already contains all the buffs\r\n\t\t\t// It can happen that, for the opponent, a card is first added to their hand (eg with Embrace Your Rage)\r\n\t\t\t// and then summoned by Diremuck. In that case, the stats need to be buffed\r\n\t\t\t// Update 29.2 18/04/2024: this is no longer the case, and the minions passed in the initial state should\r\n\t\t\t// reflect the values they have in hand\r\n\t\t\t// if (target?.friendly || !target?.inInitialState) {\r\n\t\t\tconst diremuckBuff = minion.cardId === CardIds.DiremuckForager_BG27_556_G ? 4 : 2;\r\n\t\t\tmodifyStats(target, diremuckBuff, diremuckBuff, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\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// }\r\n\t\t\tif (input.playerBoard.length < 7) {\r\n\t\t\t\ttarget.locked = true;\r\n\t\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\t\ttarget.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\tfalse,\r\n\t\t\t\t\tfalse,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\t{ ...target } as BoardEntity,\r\n\t\t\t\t);\r\n\t\t\t\tfor (const s of newMinions) {\r\n\t\t\t\t\ts.onCanceledSummon = () => (target.locked = false);\r\n\t\t\t\t}\r\n\t\t\t\tperformEntitySpawns(\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\tinput.playerBoard.length - (input.playerBoard.indexOf(minion) + 1),\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}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ElderTaggawag = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.ElderTaggawag = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
const minionsOfDifferentTypes = (0, utils_1.getMinionsOfDifferentTypes)(input.playerBoard, input.playerEntity, input.gameState);
|
|
9
|
+
if (minionsOfDifferentTypes.length >= 4) {
|
|
10
|
+
const highestAttackOnBoard = Math.max(...input.playerBoard.map((entity) => entity.attack));
|
|
11
|
+
const highestHealthOnBoard = Math.max(...input.playerBoard.map((entity) => entity.health));
|
|
12
|
+
const multiplier = minion.cardId === "TB_BaconShop_HERO_14_Buddy_G" ? 2 : 1;
|
|
13
|
+
(0, stats_1.modifyStats)(minion, highestAttackOnBoard * multiplier, highestHealthOnBoard * multiplier, input.playerBoard, input.playerEntity, input.gameState);
|
|
14
|
+
input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=elder-taggawag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elder-taggawag.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/elder-taggawag.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AACxD,0CAA4D;AAE/C,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,uBAAuB,GAAG,IAAA,kCAA0B,EACzD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,IAAI,uBAAuB,CAAC,MAAM,IAAI,CAAC,EAAE;YACxC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3F,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,mCAAuD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChG,IAAA,mBAAW,EACV,MAAM,EACN,oBAAoB,GAAG,UAAU,EACjC,oBAAoB,GAAG,UAAU,EACjC,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getMinionsOfDifferentTypes } from '../../../utils';\r\n\r\nexport const ElderTaggawag = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionsOfDifferentTypes = getMinionsOfDifferentTypes(\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\tif (minionsOfDifferentTypes.length >= 4) {\r\n\t\t\tconst highestAttackOnBoard = Math.max(...input.playerBoard.map((entity) => entity.attack));\r\n\t\t\tconst highestHealthOnBoard = Math.max(...input.playerBoard.map((entity) => entity.health));\r\n\t\t\tconst multiplier = minion.cardId === CardIds.ElderTaggawag_TB_BaconShop_HERO_14_Buddy_G ? 2 : 1;\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\thighestAttackOnBoard * multiplier,\r\n\t\t\t\thighestHealthOnBoard * multiplier,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.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\tminion,\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}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HawkstriderHerald = void 0;
|
|
4
|
+
const deathrattle_orchestration_1 = require("../../../simulation/deathrattle-orchestration");
|
|
5
|
+
exports.HawkstriderHerald = {
|
|
6
|
+
startOfCombat: (minion, input) => {
|
|
7
|
+
const multiplier = minion.cardId === "BG27_079_G" ? 2 : 1;
|
|
8
|
+
for (const entity of input.playerBoard) {
|
|
9
|
+
for (let i = 0; i < multiplier; i++) {
|
|
10
|
+
input.gameState.spectator.registerPowerTarget(minion, entity, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
11
|
+
(0, deathrattle_orchestration_1.handleDeathrattles)({
|
|
12
|
+
gameState: input.gameState,
|
|
13
|
+
playerDeadEntities: input.playerEntity.friendly ? [entity] : [],
|
|
14
|
+
playerDeadEntityIndexesFromRight: input.playerEntity.friendly
|
|
15
|
+
? [input.playerBoard.length - 1 - input.playerBoard.indexOf(entity)]
|
|
16
|
+
: [],
|
|
17
|
+
opponentDeadEntities: input.playerEntity.friendly ? [] : [entity],
|
|
18
|
+
opponentDeadEntityIndexesFromRight: input.playerEntity.friendly
|
|
19
|
+
? []
|
|
20
|
+
: [input.playerBoard.length - 1 - input.playerBoard.indexOf(entity)],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=hawkstrider-herald.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hawkstrider-herald.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hawkstrider-herald.ts"],"names":[],"mappings":";;;AAEA,6FAAmF;AAGtE,QAAA,iBAAiB,GAAG;IAChC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,WAAW,EAAE;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACpC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,8CAAkB,EAAC;oBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,kBAAkB,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC/D,gCAAgC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;wBAC5D,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;wBACpE,CAAC,CAAC,EAAE;oBACL,oBAAoB,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjE,kCAAkC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ;wBAC9D,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACrE,CAAC,CAAC;aACH;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 { handleDeathrattles } from '../../../simulation/deathrattle-orchestration';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const HawkstriderHerald = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.HawkstriderHerald_BG27_079_G ? 2 : 1;\r\n\t\tfor (const entity of input.playerBoard) {\r\n\t\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tentity,\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\thandleDeathrattles({\r\n\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t\tplayerDeadEntities: input.playerEntity.friendly ? [entity] : [],\r\n\t\t\t\t\tplayerDeadEntityIndexesFromRight: input.playerEntity.friendly\r\n\t\t\t\t\t\t? [input.playerBoard.length - 1 - input.playerBoard.indexOf(entity)]\r\n\t\t\t\t\t\t: [],\r\n\t\t\t\t\topponentDeadEntities: input.playerEntity.friendly ? [] : [entity],\r\n\t\t\t\t\topponentDeadEntityIndexesFromRight: input.playerEntity.friendly\r\n\t\t\t\t\t\t? []\r\n\t\t\t\t\t\t: [input.playerBoard.length - 1 - input.playerBoard.indexOf(entity)],\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"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HoardingHatespawn = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.HoardingHatespawn = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
const stats = minion.cardId === "BG29_872_G" ? 20 : 10;
|
|
9
|
+
const target = (0, utils_1.getRandomMinionWithHighestHealth)(input.opponentBoard);
|
|
10
|
+
if (!!target) {
|
|
11
|
+
const previousAttack = target.attack;
|
|
12
|
+
const previousHealth = target.health;
|
|
13
|
+
target.attack = Math.max(0, target.attack - stats);
|
|
14
|
+
target.health = Math.max(0, target.health - stats);
|
|
15
|
+
target.maxHealth = Math.max(0, target.maxHealth - stats);
|
|
16
|
+
(0, stats_1.modifyStats)(minion, previousAttack - target.attack, previousHealth - target.health, input.playerBoard, input.playerEntity, input.gameState);
|
|
17
|
+
input.gameState.spectator.registerPowerTarget(minion, target, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=hoarding-hatespawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hoarding-hatespawn.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/hoarding-hatespawn.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AACxD,0CAAkE;AAErD,QAAA,iBAAiB,GAAG;IAChC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAA,wCAAgC,EAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YACrC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;YACzD,IAAA,mBAAW,EACV,MAAM,EACN,cAAc,GAAG,MAAM,CAAC,MAAM,EAC9B,cAAc,GAAG,MAAM,CAAC,MAAM,EAC9B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getRandomMinionWithHighestHealth } from '../../../utils';\r\n\r\nexport const HoardingHatespawn = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst stats = minion.cardId === CardIds.HoardingHatespawn_BG29_872_G ? 20 : 10;\r\n\t\tconst target = getRandomMinionWithHighestHealth(input.opponentBoard);\r\n\t\tif (!!target) {\r\n\t\t\tconst previousAttack = target.attack;\r\n\t\t\tconst previousHealth = target.health;\r\n\t\t\ttarget.attack = Math.max(0, target.attack - stats);\r\n\t\t\ttarget.health = Math.max(0, target.health - stats);\r\n\t\t\ttarget.maxHealth = Math.max(0, target.maxHealth - stats);\r\n\t\t\tmodifyStats(\r\n\t\t\t\tminion,\r\n\t\t\t\tpreviousAttack - target.attack,\r\n\t\t\t\tpreviousHealth - target.health,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.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\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}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HummingBird = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.HummingBird = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
const multiplier = minion.cardId === "BG26_805_G" ? 2 : 1;
|
|
9
|
+
(0, utils_1.addStatsToBoard)(minion, input.playerBoard, input.playerEntity, multiplier, multiplier, input.gameState, reference_data_1.Race[reference_data_1.Race.BEAST]);
|
|
10
|
+
input.playerEntity.globalInfo.GoldrinnBuffAtk += multiplier;
|
|
11
|
+
input.playerEntity.globalInfo.GoldrinnBuffHealth += multiplier;
|
|
12
|
+
return true;
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=humming-bird.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"humming-bird.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/humming-bird.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAEpC,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;QACF,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC;QAC5D,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,kBAAkB,IAAI,UAAU,CAAC;QAC/D,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { addStatsToBoard } from '../../../utils';\r\n\r\nexport const HummingBird = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.HummingBird_BG26_805_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tmultiplier,\r\n\t\t\tmultiplier,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.BEAST],\r\n\t\t);\r\n\t\tinput.playerEntity.globalInfo.GoldrinnBuffAtk += multiplier;\r\n\t\tinput.playerEntity.globalInfo.GoldrinnBuffHealth += multiplier;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InterrogatorWhitemane = void 0;
|
|
4
|
+
const utils_1 = require("../../../services/utils");
|
|
5
|
+
exports.InterrogatorWhitemane = {
|
|
6
|
+
startOfCombat: (minion, input) => {
|
|
7
|
+
if (input.opponentBoard.length > 0) {
|
|
8
|
+
const validTargets = input.opponentBoard.filter((e) => input.gameState.cardsData.getTavernLevel(e.cardId) >= 5);
|
|
9
|
+
const numberOfPicks = minion.cardId === "BG24_704_G" ? 2 : 1;
|
|
10
|
+
for (let i = 0; i < numberOfPicks; i++) {
|
|
11
|
+
const target = (0, utils_1.pickRandom)(validTargets);
|
|
12
|
+
if (!!target) {
|
|
13
|
+
castImpure(target, minion, input.playerBoard, input.gameState.spectator);
|
|
14
|
+
const targetIndex = validTargets.findIndex((e) => e.entityId === target.entityId);
|
|
15
|
+
validTargets.splice(targetIndex, 1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
const castImpure = (entity, source, board, spectator) => {
|
|
23
|
+
var _a;
|
|
24
|
+
if (!entity) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const multiplier = source.cardId === "BG24_704_G" ? 3 : 2;
|
|
28
|
+
entity.taunt = true;
|
|
29
|
+
entity.damageMultiplier = (_a = entity.damageMultiplier) !== null && _a !== void 0 ? _a : 1;
|
|
30
|
+
entity.damageMultiplier *= multiplier;
|
|
31
|
+
spectator.registerPowerTarget(source, entity, board, null, null);
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=interrogator-whitemane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interrogator-whitemane.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/interrogator-whitemane.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAIxC,QAAA,qBAAqB,GAAG;IACpC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC9D,CAAC;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,MAAM,EAAE;oBACb,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;oBACzE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAClF,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACpC;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,MAAmB,EAAE,KAAoB,EAAE,SAAoB,EAAE,EAAE;;IAC3G,IAAI,CAAC,MAAM,EAAE;QACZ,OAAO;KACP;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,MAAM,CAAC,gBAAgB,GAAG,MAAA,MAAM,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACvD,MAAM,CAAC,gBAAgB,IAAI,UAAU,CAAC;IACtC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { Spectator } from '../../../simulation/spectator/spectator';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const InterrogatorWhitemane = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tif (input.opponentBoard.length > 0) {\r\n\t\t\tconst validTargets = input.opponentBoard.filter(\r\n\t\t\t\t(e) => input.gameState.cardsData.getTavernLevel(e.cardId) >= 5,\r\n\t\t\t);\r\n\t\t\tconst numberOfPicks = minion.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 2 : 1;\r\n\t\t\tfor (let i = 0; i < numberOfPicks; i++) {\r\n\t\t\t\tconst target = pickRandom(validTargets);\r\n\t\t\t\tif (!!target) {\r\n\t\t\t\t\tcastImpure(target, minion, input.playerBoard, input.gameState.spectator);\r\n\t\t\t\t\tconst targetIndex = validTargets.findIndex((e) => e.entityId === target.entityId);\r\n\t\t\t\t\tvalidTargets.splice(targetIndex, 1);\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\r\nconst castImpure = (entity: BoardEntity, source: BoardEntity, board: BoardEntity[], spectator: Spectator) => {\r\n\tif (!entity) {\r\n\t\treturn;\r\n\t}\r\n\tconst multiplier = source.cardId === CardIds.InterrogatorWhitemane_BG24_704_G ? 3 : 2;\r\n\tentity.taunt = true;\r\n\tentity.damageMultiplier = entity.damageMultiplier ?? 1;\r\n\tentity.damageMultiplier *= multiplier;\r\n\tspectator.registerPowerTarget(source, entity, board, null, null);\r\n};\r\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IrateRooster = void 0;
|
|
4
|
+
const attack_1 = require("../../../simulation/attack");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
exports.IrateRooster = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
const loops = minion.cardId === "BG29_990_G" ? 2 : 1;
|
|
9
|
+
for (let i = 0; i < loops; i++) {
|
|
10
|
+
const neighbours = (0, attack_1.getNeighbours)(input.playerBoard, minion);
|
|
11
|
+
for (const neighbour of neighbours) {
|
|
12
|
+
input.gameState.spectator.registerPowerTarget(minion, neighbour, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
13
|
+
(0, attack_1.dealDamageToMinion)(neighbour, input.playerBoard, input.playerEntity, minion, 1, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
14
|
+
(0, stats_1.modifyStats)(neighbour, 4, 0, input.playerBoard, input.playerEntity, input.gameState);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=irate-rooster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"irate-rooster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/irate-rooster.ts"],"names":[],"mappings":";;;AAEA,uDAA+E;AAE/E,qDAAwD;AAE3C,QAAA,YAAY,GAAG;IAC3B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBACnC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,SAAS,EACT,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,2BAAkB,EACjB,SAAS,EACT,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,IAAA,mBAAW,EAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACrF;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 { dealDamageToMinion, getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const IrateRooster = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.IrateRooster_BG29_990_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst neighbours = getNeighbours(input.playerBoard, minion);\r\n\t\t\tfor (const neighbour of neighbours) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tneighbour,\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\tdealDamageToMinion(\r\n\t\t\t\t\tneighbour,\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\t1,\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\tmodifyStats(neighbour, 4, 0, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MantidQueen = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const utils_1 = require("../../../services/utils");
|
|
6
|
+
const stats_1 = require("../../../simulation/stats");
|
|
7
|
+
exports.MantidQueen = {
|
|
8
|
+
startOfCombat: (minion, input) => {
|
|
9
|
+
const multiplier = minion.cardId === "BG22_402_G" ? 2 : 1;
|
|
10
|
+
const allRaces = input.playerBoardBefore
|
|
11
|
+
.map((entity) => entity.cardId)
|
|
12
|
+
.flatMap((cardId) => input.gameState.allCards.getCard(cardId).races)
|
|
13
|
+
.filter((race) => !!race && race !== reference_data_1.Race[reference_data_1.Race.BLANK]);
|
|
14
|
+
const totalRaces = [...new Set(allRaces.filter((race) => race !== reference_data_1.Race[reference_data_1.Race.ALL]))].length +
|
|
15
|
+
allRaces.filter((race) => race === reference_data_1.Race[reference_data_1.Race.ALL]).length;
|
|
16
|
+
for (let i = 0; i < multiplier; i++) {
|
|
17
|
+
for (let j = 0; j < totalRaces; j++) {
|
|
18
|
+
const buffType = getRandomMantidQueenBuffType(minion);
|
|
19
|
+
switch (buffType) {
|
|
20
|
+
case 'stats':
|
|
21
|
+
(0, stats_1.modifyStats)(minion, 5, 5, input.playerBoard, input.playerEntity, input.gameState);
|
|
22
|
+
break;
|
|
23
|
+
case 'reborn':
|
|
24
|
+
minion.reborn = true;
|
|
25
|
+
break;
|
|
26
|
+
case 'taunt':
|
|
27
|
+
minion.taunt = true;
|
|
28
|
+
break;
|
|
29
|
+
case 'windfury':
|
|
30
|
+
minion.windfury = true;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const getRandomMantidQueenBuffType = (entity) => {
|
|
40
|
+
const possibilities = ['stats'];
|
|
41
|
+
if (!entity.reborn) {
|
|
42
|
+
possibilities.push('reborn');
|
|
43
|
+
}
|
|
44
|
+
if (!entity.windfury) {
|
|
45
|
+
possibilities.push('windfury');
|
|
46
|
+
}
|
|
47
|
+
if (!entity.taunt) {
|
|
48
|
+
possibilities.push('taunt');
|
|
49
|
+
}
|
|
50
|
+
return (0, utils_1.pickRandom)(possibilities);
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=mantid-queen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mantid-queen.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mantid-queen.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,mDAAqD;AAErD,qDAAwD;AAE3C,QAAA,WAAW,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,iBAAiB;aACtC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;aACnE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GACf,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,qBAAI,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;YACvE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,qBAAI,CAAC,qBAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,QAAQ,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBACtD,QAAQ,QAAQ,EAAE;oBACjB,KAAK,OAAO;wBACX,IAAA,mBAAW,EAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;wBAClF,MAAM;oBACP,KAAK,QAAQ;wBACZ,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACP,KAAK,OAAO;wBACX,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;wBACpB,MAAM;oBACP,KAAK,UAAU;wBACd,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACvB,MAAM;iBACP;gBACD,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,MAAmB,EAA6C,EAAE;IACvG,MAAM,aAAa,GAAkD,CAAC,OAAO,CAAC,CAAC;IAC/E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;QACnB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC7B;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACrB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC/B;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;QAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;IACD,OAAO,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC;AAClC,CAAC,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\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 { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const MantidQueen = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.MantidQueen_BG22_402_G ? 2 : 1;\r\n\t\tconst allRaces = input.playerBoardBefore\r\n\t\t\t.map((entity) => entity.cardId)\r\n\t\t\t.flatMap((cardId) => input.gameState.allCards.getCard(cardId).races)\r\n\t\t\t.filter((race) => !!race && race !== Race[Race.BLANK]);\r\n\t\tconst totalRaces =\r\n\t\t\t[...new Set(allRaces.filter((race) => race !== Race[Race.ALL]))].length +\r\n\t\t\tallRaces.filter((race) => race === Race[Race.ALL]).length;\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tfor (let j = 0; j < totalRaces; j++) {\r\n\t\t\t\tconst buffType = getRandomMantidQueenBuffType(minion);\r\n\t\t\t\tswitch (buffType) {\r\n\t\t\t\t\tcase 'stats':\r\n\t\t\t\t\t\tmodifyStats(minion, 5, 5, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'reborn':\r\n\t\t\t\t\t\tminion.reborn = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'taunt':\r\n\t\t\t\t\t\tminion.taunt = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'windfury':\r\n\t\t\t\t\t\tminion.windfury = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminion,\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\r\nconst getRandomMantidQueenBuffType = (entity: BoardEntity): 'stats' | 'reborn' | 'windfury' | 'taunt' => {\r\n\tconst possibilities: ('stats' | 'reborn' | 'windfury' | 'taunt')[] = ['stats'];\r\n\tif (!entity.reborn) {\r\n\t\tpossibilities.push('reborn');\r\n\t}\r\n\tif (!entity.windfury) {\r\n\t\tpossibilities.push('windfury');\r\n\t}\r\n\tif (!entity.taunt) {\r\n\t\tpossibilities.push('taunt');\r\n\t}\r\n\treturn pickRandom(possibilities);\r\n};\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MisfitDragonling = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.MisfitDragonling = {
|
|
6
|
+
startOfCombat: (minion, input) => {
|
|
7
|
+
const multiplier = minion.cardId === "BG29_814_G" ? 2 : 1;
|
|
8
|
+
const tier = input.playerEntity.tavernTier;
|
|
9
|
+
const stats = multiplier * tier;
|
|
10
|
+
(0, stats_1.modifyStats)(minion, stats, stats, input.playerBoard, input.playerEntity, input.gameState);
|
|
11
|
+
input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
12
|
+
return true;
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=misfit-dragonling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misfit-dragonling.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/misfit-dragonling.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAE3C,QAAA,gBAAgB,GAAG;IAC/B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC;QAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1F,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\n\r\nexport const MisfitDragonling = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.MisfitDragonling_BG29_814_G ? 2 : 1;\r\n\t\tconst tier = input.playerEntity.tavernTier;\r\n\t\tconst stats = multiplier * tier;\r\n\t\tmodifyStats(minion, stats, stats, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.opponentEntity,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PilotedWhirlOTron = void 0;
|
|
4
|
+
const deathrattle_effects_1 = require("../../../simulation/deathrattle-effects");
|
|
5
|
+
exports.PilotedWhirlOTron = {
|
|
6
|
+
startOfCombat: (minion, input) => {
|
|
7
|
+
(0, deathrattle_effects_1.rememberDeathrattles)(minion, input.playerBoard.filter((e) => e.cardId !== "BG21_HERO_030_Buddy" &&
|
|
8
|
+
e.cardId !== "BG21_HERO_030_Buddy_G"), input.gameState.cardsData, input.gameState.allCards, input.gameState.sharedState);
|
|
9
|
+
input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
10
|
+
return true;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=piloted-whirl-o-tron.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"piloted-whirl-o-tron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/piloted-whirl-o-tron.ts"],"names":[],"mappings":";;;AAEA,iFAA+E;AAGlE,QAAA,iBAAiB,GAAG;IAChC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,IAAA,0CAAoB,EACnB,MAAM,EACN,KAAK,CAAC,WAAW,CAAC,MAAM,CACvB,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,0BAAkD;YAC1D,CAAC,CAAC,MAAM,4BAAoD,CAC7D,EACD,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,WAAW,CAC3B,CAAC;QACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { rememberDeathrattles } from '../../../simulation/deathrattle-effects';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\n\r\nexport const PilotedWhirlOTron = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\trememberDeathrattles(\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\te.cardId !== CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy &&\r\n\t\t\t\t\te.cardId !== CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy_G,\r\n\t\t\t),\r\n\t\t\tinput.gameState.cardsData,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.gameState.sharedState,\r\n\t\t);\r\n\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.opponentEntity,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrizedPromoDrake = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
exports.PrizedPromoDrake = {
|
|
8
|
+
startOfCombat: (minion, input) => {
|
|
9
|
+
const stats = minion.cardId === "BG21_014_G" ? 6 : 3;
|
|
10
|
+
const targets = input.playerBoard
|
|
11
|
+
.filter((e) => e.entityId !== minion.entityId)
|
|
12
|
+
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.DRAGON, input.gameState.allCards));
|
|
13
|
+
if (!!targets.length) {
|
|
14
|
+
for (const entity of targets) {
|
|
15
|
+
(0, stats_1.modifyStats)(entity, stats, stats, input.playerBoard, input.playerEntity, input.gameState);
|
|
16
|
+
input.gameState.spectator.registerPowerTarget(minion, entity, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=prized-promo-drake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prized-promo-drake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/prized-promo-drake.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,gBAAgB,GAAG;IAC/B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE;YACrB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC1F,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;aACF;YACD,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const PrizedPromoDrake = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst stats = minion.cardId === CardIds.PrizedPromoDrake_BG21_014_G ? 6 : 3;\r\n\t\tconst targets = input.playerBoard\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId)\r\n\t\t\t.filter((e) => hasCorrectTribe(e, input.playerEntity, Race.DRAGON, input.gameState.allCards));\r\n\t\tif (!!targets.length) {\r\n\t\t\tfor (const entity of targets) {\r\n\t\t\t\tmodifyStats(entity, stats, stats, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tentity,\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\treturn true;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedWhelp = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const attack_1 = require("../../../simulation/attack");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
exports.RedWhelp = {
|
|
8
|
+
startOfCombat: (minion, input) => {
|
|
9
|
+
const damage = input.playerBoardBefore.filter((entity) => (0, utils_1.hasCorrectTribe)(entity, input.playerEntity, reference_data_1.Race.DRAGON, input.gameState.allCards)).length;
|
|
10
|
+
const loops = minion.cardId === "TB_BaconUps_102" ? 2 : 1;
|
|
11
|
+
for (let i = 0; i < loops; i++) {
|
|
12
|
+
(0, attack_1.dealDamageToRandomEnemy)(input.opponentBoard, input.opponentEntity, minion, damage, input.playerBoard, input.playerEntity, input.gameState);
|
|
13
|
+
}
|
|
14
|
+
return true;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=red-whelp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"red-whelp.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/red-whelp.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAE7D,uDAAqE;AAErE,0CAAiD;AAEpC,QAAA,QAAQ,GAAG;IACvB,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAClF,CAAC,MAAM,CAAC;QACT,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,sBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,IAAA,gCAAuB,EACtB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { dealDamageToRandomEnemy } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const RedWhelp = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst damage = input.playerBoardBefore.filter((entity) =>\r\n\t\t\thasCorrectTribe(entity, input.playerEntity, Race.DRAGON, input.gameState.allCards),\r\n\t\t).length;\r\n\t\tconst loops = minion.cardId === CardIds.RedWhelp_TB_BaconUps_102 ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tdealDamageToRandomEnemy(\r\n\t\t\t\tinput.opponentBoard,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t\tminion,\r\n\t\t\t\tdamage,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SanctumRester = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
exports.SanctumRester = {
|
|
8
|
+
startOfCombat: (minion, input) => {
|
|
9
|
+
const buff = minion.cardId === "BG26_356_G" ? 16 : 8;
|
|
10
|
+
const otherDragons = input.playerBoard
|
|
11
|
+
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.DRAGON, input.gameState.allCards))
|
|
12
|
+
.filter((e) => e.entityId !== minion.entityId);
|
|
13
|
+
otherDragons.forEach((otherDragon) => {
|
|
14
|
+
(0, stats_1.modifyStats)(otherDragon, 0, buff, input.playerBoard, input.playerEntity, input.gameState);
|
|
15
|
+
input.gameState.spectator.registerPowerTarget(minion, otherDragon, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
16
|
+
});
|
|
17
|
+
return true;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=sanctum-rester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanctum-rester.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sanctum-rester.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,qDAAwD;AACxD,0CAAiD;AAEpC,QAAA,aAAa,GAAG;IAC5B,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzE,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW;aACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC5F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACpC,IAAA,mBAAW,EAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC1F,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,WAAW,EACX,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const SanctumRester = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst buff = minion.cardId === CardIds.SanctumRester_BG26_356_G ? 16 : 8;\r\n\t\t// First try to get a target without divine shield, and if none is available, pick one with divine shield\r\n\t\tconst otherDragons = input.playerBoard\r\n\t\t\t.filter((e) => hasCorrectTribe(e, input.playerEntity, Race.DRAGON, input.gameState.allCards))\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId);\r\n\t\totherDragons.forEach((otherDragon) => {\r\n\t\t\tmodifyStats(otherDragon, 0, buff, input.playerBoard, input.playerEntity, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\totherDragon,\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});\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Sandy = void 0;
|
|
4
|
+
const golden_1 = require("../../../simulation/utils/golden");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.Sandy = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const teammateState = (0, utils_1.getTeammateInitialState)(input.gameState.gameState, input.playerEntity);
|
|
10
|
+
if ((_a = teammateState === null || teammateState === void 0 ? void 0 : teammateState.board) === null || _a === void 0 ? void 0 : _a.length) {
|
|
11
|
+
const isGolden = minion.cardId === "BGDUO_125_G";
|
|
12
|
+
const minionToCopy = (0, utils_1.getRandomMinionWithHighestHealth)(teammateState.board);
|
|
13
|
+
const copy = { ...minionToCopy, enchantments: [...minionToCopy.enchantments] };
|
|
14
|
+
const attackerIndex = input.playerBoard.indexOf(minion);
|
|
15
|
+
input.playerBoard.splice(attackerIndex, 0, copy);
|
|
16
|
+
if (isGolden) {
|
|
17
|
+
(0, golden_1.makeMinionGolden)(copy, copy, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return true;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=sandy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandy.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sandy.ts"],"names":[],"mappings":";;;AAGA,6DAAoE;AACpE,0CAA2F;AAE9E,QAAA,KAAK,GAAG;IACpB,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;;QACvD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7F,IAAI,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,kBAA8B,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAA,wCAAgC,EAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAgB,EAAE,GAAG,YAAY,EAAE,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5F,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAExD,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE;gBACb,IAAA,yBAAgB,EACf,IAAI,EACJ,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,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 { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { makeMinionGolden } from '../../../simulation/utils/golden';\r\nimport { getRandomMinionWithHighestHealth, getTeammateInitialState } from '../../../utils';\r\n\r\nexport const Sandy = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst teammateState = getTeammateInitialState(input.gameState.gameState, input.playerEntity);\r\n\t\tif (teammateState?.board?.length) {\r\n\t\t\tconst isGolden = minion.cardId === CardIds.Sandy_BGDUO_125_G;\r\n\t\t\tconst minionToCopy = getRandomMinionWithHighestHealth(teammateState.board);\r\n\t\t\tconst copy: BoardEntity = { ...minionToCopy, enchantments: [...minionToCopy.enchantments] };\r\n\t\t\tconst attackerIndex = input.playerBoard.indexOf(minion);\r\n\t\t\t// Insert the copy in its place\r\n\t\t\tinput.playerBoard.splice(attackerIndex, 0, copy);\r\n\t\t\tif (isGolden) {\r\n\t\t\t\tmakeMinionGolden(\r\n\t\t\t\t\tcopy,\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\tinput.gameState,\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"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SkyPirateFlagbearer = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
6
|
+
exports.SkyPirateFlagbearer = {
|
|
7
|
+
startOfCombat: (minion, input) => {
|
|
8
|
+
input.playerBoard
|
|
9
|
+
.filter((e) => e.entityId !== minion.entityId)
|
|
10
|
+
.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.PIRATE, input.gameState.allCards))
|
|
11
|
+
.forEach((e) => {
|
|
12
|
+
e.enchantments = e.enchantments || [];
|
|
13
|
+
e.enchantments.push({
|
|
14
|
+
cardId: minion.cardId === "BG30_119_G"
|
|
15
|
+
? "BG30_119_Ge"
|
|
16
|
+
: "BG30_119e",
|
|
17
|
+
originEntityId: minion.entityId,
|
|
18
|
+
timing: input.gameState.sharedState.currentEntityId++,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
return true;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=sky-pirate-flagbearer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sky-pirate-flagbearer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sky-pirate-flagbearer.ts"],"names":[],"mappings":";;;AAAA,iEAA6D;AAG7D,0CAAiD;AAEpC,QAAA,mBAAmB,GAAG;IAClC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,KAAK,CAAC,WAAW;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;aAC5F,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;YACtC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnB,MAAM,EACL,MAAM,CAAC,MAAM,iBAA2C;oBACvD,CAAC;oBACD,CAAC,YAA6D;gBAChE,cAAc,EAAE,MAAM,CAAC,QAAQ;gBAC/B,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;aACrD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACJ,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\n\r\nexport const SkyPirateFlagbearer = {\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tinput.playerBoard\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId)\r\n\t\t\t.filter((e) => hasCorrectTribe(e, input.playerEntity, Race.PIRATE, input.gameState.allCards))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.enchantments = e.enchantments || [];\r\n\t\t\t\te.enchantments.push({\r\n\t\t\t\t\tcardId:\r\n\t\t\t\t\t\tminion.cardId === CardIds.SkyPirateFlagbearer_BG30_119_G\r\n\t\t\t\t\t\t\t? CardIds.SkyPirateFlagbearer_FlagbearingEnchantment_BG30_119_Ge\r\n\t\t\t\t\t\t\t: CardIds.SkyPirateFlagbearer_FlagbearingEnchantment_BG30_119e,\r\n\t\t\t\t\toriginEntityId: minion.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|