@firestone-hs/simulate-bgs-battle 1.1.622 → 1.1.623
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/board-entity.d.ts +1 -0
- package/dist/board-entity.js.map +1 -1
- package/dist/cards/cards-data.d.ts +1 -0
- package/dist/cards/cards-data.js +8 -0
- package/dist/cards/cards-data.js.map +1 -1
- package/dist/cards/impl/_card-mappings.js +40 -0
- package/dist/cards/impl/_card-mappings.js.map +1 -1
- package/dist/cards/impl/bg-spell/murkys-fish.d.ts +2 -0
- package/dist/cards/impl/bg-spell/murkys-fish.js +21 -0
- package/dist/cards/impl/bg-spell/murkys-fish.js.map +1 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery-enchantment.d.ts +2 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery-enchantment.js +15 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery-enchantment.js.map +1 -0
- package/dist/cards/impl/hero-power/fragrant-phylactery.js +8 -17
- package/dist/cards/impl/hero-power/fragrant-phylactery.js.map +1 -1
- package/dist/cards/impl/hero-power/wax-warband.js +1 -1
- package/dist/cards/impl/hero-power/wax-warband.js.map +1 -1
- package/dist/cards/impl/minion/azsharan-cutlassier.d.ts +2 -0
- package/dist/cards/impl/minion/azsharan-cutlassier.js +12 -0
- package/dist/cards/impl/minion/azsharan-cutlassier.js.map +1 -0
- package/dist/cards/impl/minion/divine-sparkbot.d.ts +2 -0
- package/dist/cards/impl/minion/divine-sparkbot.js +14 -0
- package/dist/cards/impl/minion/divine-sparkbot.js.map +1 -0
- package/dist/cards/impl/minion/expert-technician.d.ts +2 -0
- package/dist/cards/impl/minion/expert-technician.js +26 -0
- package/dist/cards/impl/minion/expert-technician.js.map +1 -0
- package/dist/cards/impl/minion/friendly-bouncer.d.ts +2 -0
- package/dist/cards/impl/minion/friendly-bouncer.js +25 -0
- package/dist/cards/impl/minion/friendly-bouncer.js.map +1 -0
- package/dist/cards/impl/minion/frostwolf-lieutenant.d.ts +2 -0
- package/dist/cards/impl/minion/frostwolf-lieutenant.js +13 -0
- package/dist/cards/impl/minion/frostwolf-lieutenant.js.map +1 -0
- package/dist/cards/impl/minion/master-gadrin.d.ts +2 -0
- package/dist/cards/impl/minion/master-gadrin.js +20 -0
- package/dist/cards/impl/minion/master-gadrin.js.map +1 -0
- package/dist/cards/impl/minion/monstrosity.d.ts +2 -0
- package/dist/cards/impl/minion/monstrosity.js +13 -0
- package/dist/cards/impl/minion/monstrosity.js.map +1 -0
- package/dist/cards/impl/minion/murky-spash-fisher.d.ts +2 -0
- package/dist/cards/impl/minion/murky-spash-fisher.js +14 -0
- package/dist/cards/impl/minion/murky-spash-fisher.js.map +1 -0
- package/dist/cards/impl/minion/pilot-the-shredder.d.ts +2 -0
- package/dist/cards/impl/minion/pilot-the-shredder.js +33 -0
- package/dist/cards/impl/minion/pilot-the-shredder.js.map +1 -0
- package/dist/cards/impl/minion/piloted-whirl-o-tron.d.ts +2 -5
- package/dist/cards/impl/minion/piloted-whirl-o-tron.js +12 -3
- package/dist/cards/impl/minion/piloted-whirl-o-tron.js.map +1 -1
- package/dist/cards/impl/minion/shadowy-construct.d.ts +2 -0
- package/dist/cards/impl/minion/shadowy-construct.js +17 -0
- package/dist/cards/impl/minion/shadowy-construct.js.map +1 -0
- package/dist/cards/impl/minion/sly-raptor.js +1 -1
- package/dist/cards/impl/minion/sly-raptor.js.map +1 -1
- package/dist/cards/impl/minion/snack-vendor.d.ts +2 -0
- package/dist/cards/impl/minion/snack-vendor.js +20 -0
- package/dist/cards/impl/minion/snack-vendor.js.map +1 -0
- package/dist/cards/impl/minion/stoneshell-guardian.d.ts +2 -0
- package/dist/cards/impl/minion/stoneshell-guardian.js +35 -0
- package/dist/cards/impl/minion/stoneshell-guardian.js.map +1 -0
- package/dist/cards/impl/minion/stormpike-lieutenant.d.ts +2 -0
- package/dist/cards/impl/minion/stormpike-lieutenant.js +13 -0
- package/dist/cards/impl/minion/stormpike-lieutenant.js.map +1 -0
- package/dist/cards/impl/minion/super-constructor.d.ts +2 -0
- package/dist/cards/impl/minion/super-constructor.js +13 -0
- package/dist/cards/impl/minion/super-constructor.js.map +1 -0
- package/dist/cards/impl/minion/tamuzo.d.ts +2 -0
- package/dist/cards/impl/minion/tamuzo.js +12 -0
- package/dist/cards/impl/minion/tamuzo.js.map +1 -0
- package/dist/cards/impl/minion/vaelastrasz.d.ts +2 -5
- package/dist/cards/impl/minion/vaelastrasz.js +11 -9
- package/dist/cards/impl/minion/vaelastrasz.js.map +1 -1
- package/dist/cards/impl/minion/weebomination.d.ts +2 -0
- package/dist/cards/impl/minion/weebomination.js +22 -0
- package/dist/cards/impl/minion/weebomination.js.map +1 -0
- package/dist/keywords/divine-shield.js +8 -3
- package/dist/keywords/divine-shield.js.map +1 -1
- package/dist/services/card-ids.d.ts +213 -53
- package/dist/services/card-ids.js.map +1 -1
- package/dist/services/utils.d.ts +3 -0
- package/dist/services/utils.js +25 -1
- package/dist/services/utils.js.map +1 -1
- package/dist/simulation/add-minion-to-board.js +0 -14
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/attack.js +0 -8
- package/dist/simulation/attack.js.map +1 -1
- package/dist/simulation/avenge.d.ts +1 -0
- package/dist/simulation/avenge.js +9 -1
- package/dist/simulation/avenge.js.map +1 -1
- package/dist/simulation/battlecries.js +5 -36
- package/dist/simulation/battlecries.js.map +1 -1
- package/dist/simulation/death-effects.js +12 -0
- package/dist/simulation/death-effects.js.map +1 -1
- package/dist/simulation/deathrattle-effects.d.ts +0 -1
- package/dist/simulation/deathrattle-effects.js +3 -10
- package/dist/simulation/deathrattle-effects.js.map +1 -1
- package/dist/simulation/deathrattle-spawns.js +3 -14
- package/dist/simulation/deathrattle-spawns.js.map +1 -1
- package/dist/simulation/on-being-attacked.js +14 -2
- package/dist/simulation/on-being-attacked.js.map +1 -1
- package/dist/simulation/secrets.d.ts +2 -2
- package/dist/simulation/secrets.js +6 -3
- package/dist/simulation/secrets.js.map +1 -1
- package/dist/simulation/spawn-fail.js +1 -2
- package/dist/simulation/spawn-fail.js.map +1 -1
- package/dist/simulation/start-of-combat/soc-action-processor.js +0 -15
- package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
- package/dist/simulation/summon-when-space.js +47 -20
- package/dist/simulation/summon-when-space.js.map +1 -1
- package/package.json +1 -1
- package/dist/cards/impl/minion/crabby.d.ts +0 -5
- package/dist/cards/impl/minion/crabby.js +0 -17
- package/dist/cards/impl/minion/crabby.js.map +0 -1
|
@@ -26,7 +26,7 @@ exports.WaxWarband = {
|
|
|
26
26
|
}),
|
|
27
27
|
];
|
|
28
28
|
allMinions.forEach((e) => {
|
|
29
|
-
(0, stats_1.modifyStats)(e, trinket,
|
|
29
|
+
(0, stats_1.modifyStats)(e, trinket, +heroPower.info, +heroPower.info, input.playerBoard, input.playerEntity, input.gameState);
|
|
30
30
|
});
|
|
31
31
|
return true;
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wax-warband.js","sourceRoot":"","sources":["../../../../src/cards/impl/hero-power/wax-warband.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wax-warband.js","sourceRoot":"","sources":["../../../../src/cards/impl/hero-power/wax-warband.ts"],"names":[],"mappings":"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","sourcesContent":["import { ALL_BG_RACES, AllCardsService, Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { shuffleArray } from '../../../services/utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { getEffectiveTribesForEntity } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const WaxWarband: StartOfCombatCard = {\r\n\tstartOfCombatTiming: 'pre-combat',\r\n\tcardIds: [CardIds.WaxWarband],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tfor (const heroPower of input.playerEntity.heroPowers) {\r\n\t\t\tif (WaxWarband.cardIds.includes(heroPower.cardId) && heroPower.used) {\r\n\t\t\t\tif (input.playerBoard.length > 0) {\r\n\t\t\t\t\tconst boardWithTribes = input.playerBoard.filter(\r\n\t\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t\t!!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t\t).length,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst boardWithoutAll = boardWithTribes.filter(\r\n\t\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t\t!getEffectiveTribesForEntity(\r\n\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst selectedMinions = selectMinions(boardWithoutAll, ALL_BG_RACES, input.gameState.allCards);\r\n\t\t\t\t\tconst allMinions = [\r\n\t\t\t\t\t\t...selectedMinions,\r\n\t\t\t\t\t\t...boardWithTribes.filter((e) =>\r\n\t\t\t\t\t\t\tgetEffectiveTribesForEntity(\r\n\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t\t)?.includes(Race.ALL),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t];\r\n\t\t\t\t\tallMinions.forEach((e) => {\r\n\t\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\ttrinket,\r\n\t\t\t\t\t\t\t+heroPower.info,\r\n\t\t\t\t\t\t\t+heroPower.info,\r\n\t\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n\r\n// Not perfect, as I don't think this solves the issue where some cards are mutually exclusive\r\nexport const selectMinions = (minions: BoardEntity[], tribes: Race[], allCards: AllCardsService): BoardEntity[] => {\r\n\t// Step 1\r\n\tconst minionsByTribe: { [tribe: string]: BoardEntity[] } = {};\r\n\tfor (const minion of minions) {\r\n\t\tfor (const tribe of allCards.getCard(minion.cardId).races ?? []) {\r\n\t\t\tif (!minionsByTribe[tribe]) {\r\n\t\t\t\tminionsByTribe[tribe] = [];\r\n\t\t\t}\r\n\t\t\tminionsByTribe[tribe].push(minion);\r\n\t\t}\r\n\t}\r\n\tfor (const tribe of ALL_BG_RACES) {\r\n\t\tminionsByTribe[tribe] = shuffleArray(minionsByTribe[Race[tribe]] ?? []);\r\n\t}\r\n\r\n\tconst selectedMinions: BoardEntity[] = [];\r\n\r\n\t// Step 3\r\n\tfor (const tribe of tribes) {\r\n\t\tif (minionsByTribe[tribe]) {\r\n\t\t\tminionsByTribe[tribe].sort(\r\n\t\t\t\t(a, b) => allCards.getCard(a.cardId).races.length - allCards.getCard(b.cardId).races.length,\r\n\t\t\t);\r\n\t\t\tfor (const minion of minionsByTribe[tribe]) {\r\n\t\t\t\tif (!selectedMinions.includes(minion)) {\r\n\t\t\t\t\tselectedMinions.push(minion);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Step 4\r\n\treturn selectedMinions;\r\n};\r\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AzsharanCutlassier = void 0;
|
|
4
|
+
exports.AzsharanCutlassier = {
|
|
5
|
+
cardIds: ["BG33_830", "BG33_830_G"],
|
|
6
|
+
battlecry: (minion, input) => {
|
|
7
|
+
const mult = minion.cardId === "BG33_830_G" ? 2 : 1;
|
|
8
|
+
input.hero.globalInfo.TavernSpellAttackBuff += 1 * mult;
|
|
9
|
+
return true;
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=azsharan-cutlassier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azsharan-cutlassier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/azsharan-cutlassier.ts"],"names":[],"mappings":";;;AAKa,QAAA,kBAAkB,GAAkB;IAChD,OAAO,EAAE,0BAA4E;IACrF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC;QACxD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const AzsharanCutlassier: BattlecryCard = {\r\n\tcardIds: [CardIds.AzsharanCutlassier_BG33_830, CardIds.AzsharanCutlassier_BG33_830_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.AzsharanCutlassier_BG33_830_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.TavernSpellAttackBuff += 1 * mult;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DivineSparkbot = void 0;
|
|
4
|
+
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
|
+
exports.DivineSparkbot = {
|
|
6
|
+
cardIds: ["BG33_809", "BG33_809_G"],
|
|
7
|
+
deathrattleSpawn: (minion, input) => {
|
|
8
|
+
const mult = minion.cardId === "BG33_809_G" ? 2 : 1;
|
|
9
|
+
const cardsToAdd = Array(mult).fill("BG33_817");
|
|
10
|
+
(0, cards_in_hand_1.addCardsInHand)(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);
|
|
11
|
+
return [];
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=divine-sparkbot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"divine-sparkbot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/divine-sparkbot.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAItD,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAA2B,CAAC;QAC/D,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const DivineSparkbot: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.DivineSparkbot_BG33_809, CardIds.DivineSparkbot_BG33_809_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DivineSparkbot_BG33_809_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.Sanctify_BG33_817);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExpertTechnician = void 0;
|
|
4
|
+
const attack_1 = require("../../../simulation/attack");
|
|
5
|
+
exports.ExpertTechnician = {
|
|
6
|
+
cardIds: ["BG33_370", "BG33_370_G"],
|
|
7
|
+
deathrattleSpawn: (minion, input) => {
|
|
8
|
+
const loops = minion.cardId === "BG33_370_G" ? 2 : 1;
|
|
9
|
+
for (let i = 0; i < loops; i++) {
|
|
10
|
+
const target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];
|
|
11
|
+
if (!target) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const previousHasAttacked = minion.hasAttacked;
|
|
15
|
+
const previousWindfury = minion.windfury;
|
|
16
|
+
target.attackImmediately = true;
|
|
17
|
+
target.windfury = false;
|
|
18
|
+
(0, attack_1.simulateAttack)(input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState);
|
|
19
|
+
target.hasAttacked = previousHasAttacked;
|
|
20
|
+
target.attackImmediately = false;
|
|
21
|
+
target.windfury = previousWindfury;
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=expert-technician.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expert-technician.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/expert-technician.ts"],"names":[],"mappings":";;;AAEA,uDAA4D;AAI/C,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,0BAAwE;IACjF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,EAAE;gBACZ,SAAS;aACT;YAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;YAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;YACzC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,IAAA,uBAAc,EACb,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;YACzC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { simulateAttack } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ExpertTechnician: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ExpertTechnician_BG33_370, CardIds.ExpertTechnician_BG33_370_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.ExpertTechnician_BG33_370_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst target = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead)[0];\r\n\t\t\tif (!target) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tconst previousHasAttacked = minion.hasAttacked;\r\n\t\t\tconst previousWindfury = minion.windfury;\r\n\t\t\ttarget.attackImmediately = true;\r\n\t\t\ttarget.windfury = false;\r\n\t\t\tsimulateAttack(\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\ttarget.hasAttacked = previousHasAttacked;\r\n\t\t\ttarget.attackImmediately = false;\r\n\t\t\ttarget.windfury = previousWindfury;\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FriendlyBouncer = void 0;
|
|
4
|
+
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
|
+
const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
6
|
+
exports.FriendlyBouncer = {
|
|
7
|
+
cardIds: ["BG33_700", "BG33_700_G"],
|
|
8
|
+
rally: (minion, input) => {
|
|
9
|
+
const loops = minion.cardId === "BG33_700_G" ? 2 : 1;
|
|
10
|
+
for (let i = 0; i < loops; i++) {
|
|
11
|
+
const spawnId = input.gameState.cardsData.getRandomRally(input.attackingHero.tavernTier);
|
|
12
|
+
(0, deathrattle_spawns_1.simplifiedSpawnEntitiesWithAddToBoard)(spawnId, 1, {
|
|
13
|
+
boardWithDeadEntity: input.attackingBoard,
|
|
14
|
+
boardWithDeadEntityHero: input.attackingHero,
|
|
15
|
+
gameState: input.gameState,
|
|
16
|
+
deadEntity: minion,
|
|
17
|
+
otherBoard: input.defendingBoard,
|
|
18
|
+
otherBoardHero: input.defendingHero,
|
|
19
|
+
}, minion, input.attackingBoard.length - input.attackingBoard.indexOf(minion) - 1);
|
|
20
|
+
(0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, [spawnId], input.gameState);
|
|
21
|
+
}
|
|
22
|
+
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=friendly-bouncer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"friendly-bouncer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/friendly-bouncer.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AACnE,+EAA+F;AAIlF,QAAA,eAAe,GAAc;IACzC,OAAO,EAAE,0BAAsE;IAC/E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzF,IAAA,0DAAqC,EACpC,OAAO,EACP,CAAC,EACD;gBACC,mBAAmB,EAAE,KAAK,CAAC,cAAc;gBACzC,uBAAuB,EAAE,KAAK,CAAC,aAAa;gBAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,MAAM;gBAClB,UAAU,EAAE,KAAK,CAAC,cAAc;gBAChC,cAAc,EAAE,KAAK,CAAC,aAAa;aACnC,EACD,MAAM,EACN,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CACtE,CAAC;YACF,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { simplifiedSpawnEntitiesWithAddToBoard } from '../../../simulation/deathrattle-spawns';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const FriendlyBouncer: RallyCard = {\r\n\tcardIds: [CardIds.FriendlyBouncer_BG33_700, CardIds.FriendlyBouncer_BG33_700_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst loops = minion.cardId === CardIds.FriendlyBouncer_BG33_700_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\tconst spawnId = input.gameState.cardsData.getRandomRally(input.attackingHero.tavernTier);\r\n\t\t\tsimplifiedSpawnEntitiesWithAddToBoard(\r\n\t\t\t\tspawnId,\r\n\t\t\t\t1,\r\n\t\t\t\t{\r\n\t\t\t\t\tboardWithDeadEntity: input.attackingBoard,\r\n\t\t\t\t\tboardWithDeadEntityHero: input.attackingHero,\r\n\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t\tdeadEntity: minion,\r\n\t\t\t\t\totherBoard: input.defendingBoard,\r\n\t\t\t\t\totherBoardHero: input.defendingHero,\r\n\t\t\t\t},\r\n\t\t\t\tminion,\r\n\t\t\t\tinput.attackingBoard.length - input.attackingBoard.indexOf(minion) - 1,\r\n\t\t\t);\r\n\t\t\taddCardsInHand(input.attackingHero, input.attackingBoard, [spawnId], input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrostwolfLieutenant = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.FrostwolfLieutenant = {
|
|
6
|
+
cardIds: ["BG22_HERO_002_Buddy", "BG22_HERO_002_Buddy_G"],
|
|
7
|
+
endOfTurn: (minion, input) => {
|
|
8
|
+
const mult = minion.cardId === "BG22_HERO_002_Buddy_G" ? 2 : 1;
|
|
9
|
+
const target = input.board[0];
|
|
10
|
+
(0, stats_1.modifyStats)(target, minion, 10 * mult, 0, input.board, input.hero, input.gameState);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=frostwolf-lieutenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frostwolf-lieutenant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/frostwolf-lieutenant.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,gDAAoG;IAC7G,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAAsD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const FrostwolfLieutenant: EndOfTurnCard = {\r\n\tcardIds: [CardIds.FrostwolfLieutenant_BG22_HERO_002_Buddy, CardIds.FrostwolfLieutenant_BG22_HERO_002_Buddy_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.FrostwolfLieutenant_BG22_HERO_002_Buddy_G ? 2 : 1;\r\n\t\tconst target = input.board[0];\r\n\t\tmodifyStats(target, minion, 10 * mult, 0, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MasterGadrin = void 0;
|
|
4
|
+
const attack_1 = require("../../../simulation/attack");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
exports.MasterGadrin = {
|
|
7
|
+
cardIds: ["BG20_HERO_201_Buddy", "BG20_HERO_201_Buddy_G"],
|
|
8
|
+
startOfCombat: (minion, input) => {
|
|
9
|
+
const minionIndex = input.playerBoard.indexOf(minion);
|
|
10
|
+
const leftNeighbour = minionIndex - 1 >= 0 ? input.playerBoard[minionIndex - 1] : null;
|
|
11
|
+
const targets = minion.cardId === "BG20_HERO_201_Buddy_G"
|
|
12
|
+
? (0, attack_1.getNeighbours)(input.playerBoard, minion)
|
|
13
|
+
: [leftNeighbour];
|
|
14
|
+
for (const target of targets) {
|
|
15
|
+
(0, stats_1.modifyStats)(target, minion, 0, target.attack, input.playerBoard, input.playerEntity, input.gameState);
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=master-gadrin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master-gadrin.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/master-gadrin.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,YAAY,GAAsB;IAC9C,OAAO,EAAE,gDAAsF;IAC/F,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,MAAM,OAAO,GACZ,MAAM,CAAC,MAAM,4BAA+C;YAC3D,CAAC,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;YAC1C,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACtG;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const MasterGadrin: StartOfCombatCard = {\r\n\tcardIds: [CardIds.MasterGadrin_BG20_HERO_201_Buddy, CardIds.MasterGadrin_BG20_HERO_201_Buddy_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst minionIndex = input.playerBoard.indexOf(minion);\r\n\t\tconst leftNeighbour = minionIndex - 1 >= 0 ? input.playerBoard[minionIndex - 1] : null;\r\n\t\tconst targets =\r\n\t\t\tminion.cardId === CardIds.MasterGadrin_BG20_HERO_201_Buddy_G\r\n\t\t\t\t? getNeighbours(input.playerBoard, minion)\r\n\t\t\t\t: [leftNeighbour];\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, minion, 0, target.attack, input.playerBoard, input.playerEntity, input.gameState);\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.Monstrosity = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.Monstrosity = {
|
|
6
|
+
cardIds: ["BG20_HERO_282_Buddy", "BG20_HERO_282_Buddy_G"],
|
|
7
|
+
baseAvengeValue: (cardId) => 1,
|
|
8
|
+
avenge: (minion, input) => {
|
|
9
|
+
const mult = minion.cardId === "BG20_HERO_282_Buddy_G" ? 2 : 1;
|
|
10
|
+
(0, stats_1.modifyStats)(minion, minion, input.deadEntity.attack * mult, 0, input.board, input.hero, input.gameState);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=monstrosity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monstrosity.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/monstrosity.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,WAAW,GAAe;IACtC,OAAO,EAAE,gDAAoF;IAC7F,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1G,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Monstrosity: AvengeCard = {\r\n\tcardIds: [CardIds.Monstrosity_BG20_HERO_282_Buddy, CardIds.Monstrosity_BG20_HERO_282_Buddy_G],\r\n\tbaseAvengeValue: (cardId: string) => 1,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Monstrosity_BG20_HERO_282_Buddy_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, input.deadEntity.attack * mult, 0, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MurkySpashFisher = void 0;
|
|
4
|
+
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
|
+
exports.MurkySpashFisher = {
|
|
6
|
+
cardIds: ["BG33_897", "BG33_897_G"],
|
|
7
|
+
battlecry: (minion, input) => {
|
|
8
|
+
const mult = minion.cardId === "BG33_897_G" ? 2 : 1;
|
|
9
|
+
const cardsToAdd = Array(mult).fill("BG33_898");
|
|
10
|
+
(0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
|
|
11
|
+
return true;
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=murky-spash-fisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"murky-spash-fisher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/murky-spash-fisher.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0BAA0E;IACnF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAA6B,CAAC;QACjE,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const MurkySpashFisher: BattlecryCard = {\r\n\tcardIds: [CardIds.MurkySplashFisher_BG33_897, CardIds.MurkySplashFisher_BG33_897_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MurkySplashFisher_BG33_897_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.MurkysFish_BG33_898);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\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.PilotTheShredder = void 0;
|
|
4
|
+
const utils_1 = require("../../../services/utils");
|
|
5
|
+
const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
6
|
+
exports.PilotTheShredder = {
|
|
7
|
+
cardIds: ["BG21_HERO_030t", "BG21_HERO_030t_G"],
|
|
8
|
+
deathrattleSpawn: (minion, input) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const mult = minion.cardId === "BG21_HERO_030t_G" ? 2 : 1;
|
|
11
|
+
const allSpawns = [];
|
|
12
|
+
for (let i = 0; i < mult; i++) {
|
|
13
|
+
const hand = (_a = input.boardWithDeadEntityHero.hand.filter((e) => !!(e === null || e === void 0 ? void 0 : e.cardId)).filter((e) => !e.locked)) !== null && _a !== void 0 ? _a : [];
|
|
14
|
+
const highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));
|
|
15
|
+
const highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;
|
|
16
|
+
const spawn = !!(highestHealthMinions === null || highestHealthMinions === void 0 ? void 0 : highestHealthMinions.length)
|
|
17
|
+
? (0, utils_1.pickRandom)(highestHealthMinions)
|
|
18
|
+
: hand.filter((c) => c.cardId).length
|
|
19
|
+
? (0, utils_1.pickRandom)(hand.filter((c) => c.cardId))
|
|
20
|
+
: null;
|
|
21
|
+
if (spawn) {
|
|
22
|
+
spawn.locked = true;
|
|
23
|
+
const spawns = (0, deathrattle_spawns_1.spawnEntities)(spawn.cardId, 1, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState, minion.friendly, false, false, true, { ...spawn });
|
|
24
|
+
for (const s of spawns) {
|
|
25
|
+
s.onCanceledSummon = () => (spawn.locked = false);
|
|
26
|
+
}
|
|
27
|
+
allSpawns.push(...spawns);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return allSpawns;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=pilot-the-shredder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot-the-shredder.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/pilot-the-shredder.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,+EAAuE;AAG1D,QAAA,gBAAgB,GAAyB;IACrD,OAAO,EAAE,sCAAiG;IAC1G,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAC;YAC1G,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACrF,MAAM,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,CAAA;gBAC3C,CAAC,CAAC,IAAA,kBAAU,EAAC,oBAAoB,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;oBACrC,CAAC,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC;YACR,IAAI,KAAK,EAAE;gBACV,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;gBAKpB,MAAM,MAAM,GAAG,IAAA,kCAAa,EAC3B,KAAK,CAAC,MAAM,EACZ,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,QAAQ,EACf,KAAK,EACL,KAAK,EACL,IAAI,EACJ,EAAE,GAAG,KAAK,EAAiB,CAC3B,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE;oBACvB,CAAC,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;iBAElD;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aAC1B;SACD;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const PilotTheShredder: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Sneed_SneedsNewShredderToken_BG21_HERO_030t, CardIds.SneedsNewShredder_BG21_HERO_030t_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SneedsNewShredder_BG21_HERO_030t_G ? 2 : 1;\r\n\t\tconst allSpawns = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst hand = input.boardWithDeadEntityHero.hand.filter((e) => !!e?.cardId).filter((e) => !e.locked) ?? [];\r\n\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\tconst highestHealthMinions = highestHealth ? hand.filter((c) => c.health === highestHealth) : null;\r\n\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t: null;\r\n\t\t\tif (spawn) {\r\n\t\t\t\tspawn.locked = true;\r\n\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t// spawn.locked = true;\r\n\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t1,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tinput.gameState,\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{ ...spawn } as BoardEntity,\r\n\t\t\t\t);\r\n\t\t\t\tfor (const s of spawns) {\r\n\t\t\t\t\ts.onCanceledSummon = () => (spawn.locked = false);\r\n\t\t\t\t\t// s.backRef = spawn;\r\n\t\t\t\t}\r\n\t\t\t\tallSpawns.push(...spawns);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn allSpawns;\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const PilotedWhirlOTron: {
|
|
4
|
-
startOfCombat: (minion: BoardEntity, input: SoCInput) => boolean;
|
|
5
|
-
};
|
|
1
|
+
import { StartOfCombatCard } from '../../card.interface';
|
|
2
|
+
export declare const PilotedWhirlOTron: StartOfCombatCard;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PilotedWhirlOTron = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
4
5
|
const deathrattle_effects_1 = require("../../../simulation/deathrattle-effects");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
5
7
|
exports.PilotedWhirlOTron = {
|
|
8
|
+
cardIds: ["BG21_HERO_030_Buddy", "BG21_HERO_030_Buddy_G"],
|
|
6
9
|
startOfCombat: (minion, input) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
const mult = minion.cardId === "BG21_HERO_030_Buddy_G" ? 2 : 1;
|
|
11
|
+
const targets = input.playerBoard
|
|
12
|
+
.filter((e) => !exports.PilotedWhirlOTron.cardIds.includes(e.cardId) &&
|
|
13
|
+
(0, utils_1.hasEntityMechanic)(e, reference_data_1.GameTag.DEATHRATTLE, input.gameState.allCards))
|
|
14
|
+
.slice(0, 2);
|
|
15
|
+
for (let i = 0; i < mult; i++) {
|
|
16
|
+
(0, deathrattle_effects_1.rememberDeathrattles)(minion, targets, input.gameState.cardsData, input.gameState.allCards, input.gameState.sharedState);
|
|
17
|
+
input.gameState.spectator.registerPowerTarget(minion, minion, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
18
|
+
}
|
|
10
19
|
return true;
|
|
11
20
|
},
|
|
12
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piloted-whirl-o-tron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/piloted-whirl-o-tron.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"piloted-whirl-o-tron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/piloted-whirl-o-tron.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAGvD,iFAA+E;AAE/E,0CAAmD;AAGtC,QAAA,iBAAiB,GAAsB;IACnD,OAAO,EAAE,gDAAgG;IACzG,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAAoD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW;aAC/B,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,yBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpE;aACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,0CAAoB,EACnB,MAAM,EACN,OAAO,EACP,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,SAAS,CAAC,WAAW,CAC3B,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 { GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { rememberDeathrattles } from '../../../simulation/deathrattle-effects';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const PilotedWhirlOTron: StartOfCombatCard = {\r\n\tcardIds: [CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy, CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy_G ? 2 : 1;\r\n\t\tconst targets = input.playerBoard\r\n\t\t\t.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!PilotedWhirlOTron.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\thasEntityMechanic(e, GameTag.DEATHRATTLE, input.gameState.allCards),\r\n\t\t\t)\r\n\t\t\t.slice(0, 2);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\trememberDeathrattles(\r\n\t\t\t\tminion,\r\n\t\t\t\ttargets,\r\n\t\t\t\tinput.gameState.cardsData,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.gameState.sharedState,\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,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShadowConstruct = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.ShadowConstruct = {
|
|
6
|
+
cardIds: ["BG25_HERO_103_Buddy", "BG25_HERO_103_Buddy_G"],
|
|
7
|
+
baseAvengeValue: (cardId) => 1,
|
|
8
|
+
defaultCharges: (entity) => (entity.cardId === "BG25_HERO_103_Buddy_G" ? 2 : 1),
|
|
9
|
+
avenge: (minion, input) => {
|
|
10
|
+
if (minion.abiityChargesLeft <= 0) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
minion.abiityChargesLeft--;
|
|
14
|
+
(0, stats_1.modifyStats)(minion, minion, input.deadEntity.attack, input.deadEntity.maxHealth, input.board, input.hero, input.gameState);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=shadowy-construct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadowy-construct.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/shadowy-construct.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,eAAe,GAAoC;IAC/D,OAAO,EAAE,gDAA8F;IACvG,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,4BAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,IAAI,MAAM,CAAC,iBAAiB,IAAI,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC;SACZ;QACD,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,KAAK,CAAC,UAAU,CAAC,SAAS,EAC1B,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard, DefaultChargesCard } from '../../card.interface';\r\n\r\nexport const ShadowConstruct: AvengeCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.ShadowyConstruct_BG25_HERO_103_Buddy, CardIds.ShadowyConstruct_BG25_HERO_103_Buddy_G],\r\n\tbaseAvengeValue: (cardId: string) => 1,\r\n\tdefaultCharges: (entity: BoardEntity) => (entity.cardId === CardIds.ShadowyConstruct_BG25_HERO_103_Buddy_G ? 2 : 1),\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tif (minion.abiityChargesLeft <= 0) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tminion.abiityChargesLeft--;\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tinput.deadEntity.attack,\r\n\t\t\tinput.deadEntity.maxHealth,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,7 +6,7 @@ const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
|
6
6
|
exports.SlyRaptor = {
|
|
7
7
|
cardIds: ["BG25_806", "BG25_806_G"],
|
|
8
8
|
deathrattleSpawn: (minion, input) => {
|
|
9
|
-
const raptorStat = minion.cardId === "BG25_806_G" ?
|
|
9
|
+
const raptorStat = minion.cardId === "BG25_806_G" ? 12 : 6;
|
|
10
10
|
const target = input.gameState.cardsData.getRandomMinionForTribe(reference_data_1.Race.BEAST, input.boardWithDeadEntityHero.tavernTier, exports.SlyRaptor.cardIds);
|
|
11
11
|
const beastsFromRaptor = (0, deathrattle_spawns_1.simplifiedSpawnEntities)(target, 1, input);
|
|
12
12
|
beastsFromRaptor.forEach((b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sly-raptor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sly-raptor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sly-raptor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sly-raptor.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,+EAAiF;AAGpE,QAAA,SAAS,GAAyB;IAC9C,OAAO,EAAE,0BAA0D;IACnE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,iBAAiC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAC/D,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,uBAAuB,CAAC,UAAU,EACxC,iBAAS,CAAC,OAAO,CACjB,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAA,4CAAuB,EAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACnE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC;IACzB,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SlyRaptor: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SlyRaptor_BG25_806, CardIds.SlyRaptor_BG25_806_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst raptorStat = minion.cardId === CardIds.SlyRaptor_BG25_806_G ? 12 : 6;\r\n\t\tconst target = input.gameState.cardsData.getRandomMinionForTribe(\r\n\t\t\tRace.BEAST,\r\n\t\t\tinput.boardWithDeadEntityHero.tavernTier,\r\n\t\t\tSlyRaptor.cardIds,\r\n\t\t);\r\n\t\tconst beastsFromRaptor = simplifiedSpawnEntities(target, 1, input);\r\n\t\tbeastsFromRaptor.forEach((b) => {\r\n\t\t\tb.attack = raptorStat;\r\n\t\t\tb.health = raptorStat;\r\n\t\t});\r\n\t\treturn beastsFromRaptor;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SnackVendor = void 0;
|
|
4
|
+
const utils_1 = require("../../../services/utils");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
exports.SnackVendor = {
|
|
7
|
+
cardIds: ["TB_BaconShop_HERO_16_Buddy", "TB_BaconShop_HERO_16_Buddy"],
|
|
8
|
+
endOfTurn: (minion, input) => {
|
|
9
|
+
const mult = minion.cardId === "TB_BaconShop_HERO_16_Buddy" ? 2 : 1;
|
|
10
|
+
for (let i = 0; i < mult; i++) {
|
|
11
|
+
const candidates = input.board.filter((e) => !exports.SnackVendor.cardIds.includes(e.cardId) &&
|
|
12
|
+
input.gameState.allCards.getCard(e.cardId).techLevel === 3);
|
|
13
|
+
const target = (0, utils_1.pickRandom)(candidates);
|
|
14
|
+
if (target) {
|
|
15
|
+
(0, stats_1.modifyStats)(target, minion, minion.attack, minion.maxHealth, input.board, input.hero, input.gameState);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=snack-vendor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snack-vendor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/snack-vendor.ts"],"names":[],"mappings":";;;AAEA,mDAAqD;AAErD,qDAAwD;AAG3C,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE,4DAAgG;IACzG,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iCAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,mBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,CAC3D,CAAC;YACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE;gBACX,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvG;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard } from '../../card.interface';\r\n\r\nexport const SnackVendor: EndOfTurnCard = {\r\n\tcardIds: [CardIds.SnackVendor_TB_BaconShop_HERO_16_Buddy, CardIds.SnackVendor_TB_BaconShop_HERO_16_Buddy],\r\n\tendOfTurn: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SnackVendor_TB_BaconShop_HERO_16_Buddy ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst candidates = input.board.filter(\r\n\t\t\t\t(e) =>\r\n\t\t\t\t\t!SnackVendor.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\tinput.gameState.allCards.getCard(e.cardId).techLevel === 3,\r\n\t\t\t);\r\n\t\t\tconst target = pickRandom(candidates);\r\n\t\t\tif (target) {\r\n\t\t\t\tmodifyStats(target, minion, minion.attack, minion.maxHealth, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoneshellGuardian = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
6
|
+
const spawns_1 = require("../../../simulation/spawns");
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
exports.StoneshellGuardian = {
|
|
9
|
+
cardIds: ["BG33_HERO_000_Buddy", "BG33_HERO_000_Buddy_G"],
|
|
10
|
+
startOfCombat: (minion, input) => {
|
|
11
|
+
const numberOfCopies = minion.cardId === "BG33_HERO_000_Buddy_G" ? 2 : 1;
|
|
12
|
+
for (let i = 0; i < numberOfCopies; i++) {
|
|
13
|
+
for (let j = 0; j < 2; j++) {
|
|
14
|
+
if (!!input.playerBoard.length && input.playerBoard.length < 7) {
|
|
15
|
+
const rallyMinions = input.playerBoard.filter((e) => !exports.StoneshellGuardian.cardIds.includes(e.cardId) &&
|
|
16
|
+
(0, utils_1.hasEntityMechanic)(e, reference_data_1.GameTag.BACON_RALLY, input.gameState.allCards));
|
|
17
|
+
const target = rallyMinions[j];
|
|
18
|
+
if (!target) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const copy = {
|
|
22
|
+
...target,
|
|
23
|
+
lastAffectedByEntity: null,
|
|
24
|
+
};
|
|
25
|
+
const newMinions = (0, deathrattle_spawns_1.spawnEntities)(copy.cardId, 1, input.playerBoard, input.playerEntity, input.opponentBoard, input.opponentEntity, input.gameState, target.friendly, true, false, false, copy);
|
|
26
|
+
const indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(target) + 1);
|
|
27
|
+
const actualSpawns = (0, spawns_1.performEntitySpawns)(newMinions, input.playerBoard, input.playerEntity, target, indexFromRight, input.opponentBoard, input.opponentEntity, input.gameState);
|
|
28
|
+
input.gameState.spectator.registerPowerTarget(minion, copy, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=stoneshell-guardian.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stoneshell-guardian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stoneshell-guardian.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAGvD,+EAAuE;AACvE,uDAAiE;AAEjE,0CAAmD;AAGtC,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,gDAAkG;IAC3G,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QAEvD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,4BAAqD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC3B,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC/D,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,0BAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC9C,IAAA,yBAAiB,EAAC,CAAC,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CACpE,CAAC;oBACF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oBAC/B,IAAI,CAAC,MAAM,EAAE;wBACZ,SAAS;qBACT;oBACD,MAAM,IAAI,GAAgB;wBACzB,GAAG,MAAM;wBACT,oBAAoB,EAAE,IAAI;qBAC1B,CAAC;oBACF,MAAM,UAAU,GAAG,IAAA,kCAAa,EAC/B,IAAI,CAAC,MAAM,EACX,CAAC,EACD,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,QAAQ,EACf,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,CACJ,CAAC;oBACF,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1F,MAAM,YAAY,GAAG,IAAA,4BAAmB,EACvC,UAAU,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,MAAM,EACN,cAAc,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,CACf,CAAC;oBAEF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;iBACF;aACD;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\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 { hasEntityMechanic } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StoneshellGuardian: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StoneshellGuardian_BG33_HERO_000_Buddy, CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\t// let totalSpawned = 0;\r\n\t\tconst numberOfCopies = minion.cardId === CardIds.StoneshellGuardian_BG33_HERO_000_Buddy_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCopies; i++) {\r\n\t\t\tfor (let j = 0; j < 2; j++) {\r\n\t\t\t\tif (!!input.playerBoard.length && input.playerBoard.length < 7) {\r\n\t\t\t\t\tconst rallyMinions = input.playerBoard.filter(\r\n\t\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t\t!StoneshellGuardian.cardIds.includes(e.cardId) &&\r\n\t\t\t\t\t\t\thasEntityMechanic(e, GameTag.BACON_RALLY, input.gameState.allCards),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst target = rallyMinions[j];\r\n\t\t\t\t\tif (!target) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst copy: BoardEntity = {\r\n\t\t\t\t\t\t...target,\r\n\t\t\t\t\t\tlastAffectedByEntity: null,\r\n\t\t\t\t\t};\r\n\t\t\t\t\tconst newMinions = spawnEntities(\r\n\t\t\t\t\t\tcopy.cardId,\r\n\t\t\t\t\t\t1,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t\ttarget.friendly,\r\n\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\tcopy,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst indexFromRight = input.playerBoard.length - (input.playerBoard.indexOf(target) + 1);\r\n\t\t\t\t\tconst actualSpawns = performEntitySpawns(\r\n\t\t\t\t\t\tnewMinions,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tindexFromRight,\r\n\t\t\t\t\t\tinput.opponentBoard,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t\t// totalSpawned += actualSpawns.length;\r\n\t\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tcopy,\r\n\t\t\t\t\t\tinput.playerBoard,\r\n\t\t\t\t\t\tinput.playerEntity,\r\n\t\t\t\t\t\tinput.opponentEntity,\r\n\t\t\t\t\t);\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,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StormpikeLieutenant = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.StormpikeLieutenant = {
|
|
6
|
+
cardIds: ["BG22_HERO_003_Buddy", "BG22_HERO_003_Buddy_G"],
|
|
7
|
+
endOfTurn: (minion, input) => {
|
|
8
|
+
const mult = minion.cardId === "BG22_HERO_003_Buddy_G" ? 2 : 1;
|
|
9
|
+
const target = input.board[input.board.length - 1];
|
|
10
|
+
(0, stats_1.modifyStats)(target, minion, 0, 10 * mult, input.board, input.hero, input.gameState);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=stormpike-lieutenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stormpike-lieutenant.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stormpike-lieutenant.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,mBAAmB,GAAkB;IACjD,OAAO,EAAE,gDAAoG;IAC7G,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,4BAAsD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const StormpikeLieutenant: EndOfTurnCard = {\r\n\tcardIds: [CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy, CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy_G ? 2 : 1;\r\n\t\tconst target = input.board[input.board.length - 1];\r\n\t\tmodifyStats(target, minion, 0, 10 * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuperConstructor = void 0;
|
|
4
|
+
exports.SuperConstructor = {
|
|
5
|
+
cardIds: ["BG33_808", "BG33_808_G"],
|
|
6
|
+
rally: (minion, input) => {
|
|
7
|
+
const mult = minion.cardId === "BG33_808_G" ? 2 : 1;
|
|
8
|
+
input.attackingHero.globalInfo.TavernSpellAttackBuff += 1 * mult;
|
|
9
|
+
input.attackingHero.globalInfo.TavernSpellHealthBuff += 1 * mult;
|
|
10
|
+
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=super-constructor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"super-constructor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/super-constructor.ts"],"names":[],"mappings":";;;AAKa,QAAA,gBAAgB,GAAc;IAC1C,OAAO,EAAE,0BAAwE;IACjF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC;QACjE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,qBAAqB,IAAI,CAAC,GAAG,IAAI,CAAC;QACjE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const SuperConstructor: RallyCard = {\r\n\tcardIds: [CardIds.SuperConstructor_BG33_808, CardIds.SuperConstructor_BG33_808_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.SuperConstructor_BG33_808_G ? 2 : 1;\r\n\t\tinput.attackingHero.globalInfo.TavernSpellAttackBuff += 1 * mult;\r\n\t\tinput.attackingHero.globalInfo.TavernSpellHealthBuff += 1 * mult;\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|