@firestone-hs/simulate-bgs-battle 1.1.713 → 1.1.715
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 +3 -1
- package/dist/bgs-player-entity.js.map +1 -1
- package/dist/cards/card.interface.d.ts +5 -1
- package/dist/cards/card.interface.js +4 -2
- package/dist/cards/card.interface.js.map +1 -1
- package/dist/cards/impl/_card-mappings.js +22 -2
- package/dist/cards/impl/_card-mappings.js.map +1 -1
- package/dist/cards/impl/bg-spell/butchering.js +3 -1
- package/dist/cards/impl/bg-spell/butchering.js.map +1 -1
- package/dist/cards/impl/bg-spell/healthy-bounty.js +1 -1
- package/dist/cards/impl/bg-spell/healthy-bounty.js.map +1 -1
- package/dist/cards/impl/bg-spell/hostile-bounty.js +1 -1
- package/dist/cards/impl/bg-spell/hostile-bounty.js.map +1 -1
- package/dist/cards/impl/bg-spell/queens-command.js +1 -1
- package/dist/cards/impl/bg-spell/queens-command.js.map +1 -1
- package/dist/cards/impl/minion/brazen-buccaneer.js +3 -1
- package/dist/cards/impl/minion/brazen-buccaneer.js.map +1 -1
- package/dist/cards/impl/minion/charging-czarina.js +3 -2
- package/dist/cards/impl/minion/charging-czarina.js.map +1 -1
- package/dist/cards/impl/minion/dastardly-drust.js +2 -2
- package/dist/cards/impl/minion/dastardly-drust.js.map +1 -1
- package/dist/cards/impl/minion/dead-sea-ravager.d.ts +2 -0
- package/dist/cards/impl/minion/dead-sea-ravager.js +21 -0
- package/dist/cards/impl/minion/dead-sea-ravager.js.map +1 -0
- package/dist/cards/impl/minion/dreaming-thornweaver.js +2 -7
- package/dist/cards/impl/minion/dreaming-thornweaver.js.map +1 -1
- package/dist/cards/impl/minion/drustfallen-butcher.js +1 -1
- package/dist/cards/impl/minion/drustfallen-butcher.js.map +1 -1
- package/dist/cards/impl/minion/ingenious-inventor.d.ts +2 -0
- package/dist/cards/impl/minion/ingenious-inventor.js +15 -0
- package/dist/cards/impl/minion/ingenious-inventor.js.map +1 -0
- package/dist/cards/impl/minion/king-bagurgle.js +2 -2
- package/dist/cards/impl/minion/king-bagurgle.js.map +1 -1
- package/dist/cards/impl/minion/nalaa-the-redeemer.js +1 -1
- package/dist/cards/impl/minion/nalaa-the-redeemer.js.map +1 -1
- package/dist/cards/impl/minion/poultron.js +1 -1
- package/dist/cards/impl/minion/poultron.js.map +1 -1
- package/dist/cards/impl/minion/stomping-stegodon.d.ts +1 -1
- package/dist/cards/impl/minion/stomping-stegodon.js +1 -1
- package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
- package/dist/cards/impl/minion/vinespeaker.js +5 -0
- package/dist/cards/impl/minion/vinespeaker.js.map +1 -1
- package/dist/cards/impl/spellcraft/trudge-through-lava.d.ts +2 -0
- package/dist/cards/impl/spellcraft/trudge-through-lava.js +15 -0
- package/dist/cards/impl/spellcraft/trudge-through-lava.js.map +1 -0
- package/dist/cards/impl/spellcraft/use-supplies.d.ts +2 -0
- package/dist/cards/impl/spellcraft/use-supplies.js +15 -0
- package/dist/cards/impl/spellcraft/use-supplies.js.map +1 -0
- package/dist/cards/impl/spellcraft/volcanic-visitor.d.ts +2 -0
- package/dist/cards/impl/spellcraft/volcanic-visitor.js +17 -0
- package/dist/cards/impl/spellcraft/volcanic-visitor.js.map +1 -0
- package/dist/cards/impl/trinket/blood-golem-sticker.js +1 -1
- package/dist/cards/impl/trinket/blood-golem-sticker.js.map +1 -1
- package/dist/cards/impl/trinket/bluegill-flippers.js +15 -5
- package/dist/cards/impl/trinket/bluegill-flippers.js.map +1 -1
- package/dist/cards/impl/trinket/copper-coil.js +9 -6
- package/dist/cards/impl/trinket/copper-coil.js.map +1 -1
- package/dist/cards/impl/trinket/deathtouch-apple.d.ts +2 -0
- package/dist/cards/impl/trinket/deathtouch-apple.js +22 -0
- package/dist/cards/impl/trinket/deathtouch-apple.js.map +1 -0
- package/dist/cards/impl/trinket/lorewalker-scroll.js +2 -2
- package/dist/cards/impl/trinket/lorewalker-scroll.js.map +1 -1
- package/dist/cards/impl/trinket/lucky-tabby.js +2 -2
- package/dist/cards/impl/trinket/lucky-tabby.js.map +1 -1
- package/dist/cards/impl/trinket/powder-keg.js +1 -1
- package/dist/cards/impl/trinket/powder-keg.js.map +1 -1
- package/dist/cards/impl/trinket/rylak-portrait.d.ts +2 -0
- package/dist/cards/impl/trinket/rylak-portrait.js +19 -0
- package/dist/cards/impl/trinket/rylak-portrait.js.map +1 -0
- package/dist/cards/impl/trinket/sky-golem-portrait-enchantment.d.ts +2 -0
- package/dist/cards/impl/trinket/sky-golem-portrait-enchantment.js +17 -0
- package/dist/cards/impl/trinket/sky-golem-portrait-enchantment.js.map +1 -0
- package/dist/cards/impl/trinket/sky-golem-portrait.d.ts +2 -0
- package/dist/cards/impl/trinket/sky-golem-portrait.js +21 -0
- package/dist/cards/impl/trinket/sky-golem-portrait.js.map +1 -0
- package/dist/cards/impl/trinket/soul-fermenter.d.ts +2 -0
- package/dist/cards/impl/trinket/soul-fermenter.js +36 -0
- package/dist/cards/impl/trinket/soul-fermenter.js.map +1 -0
- package/dist/cards/impl/trinket/{tiger-carving-token.js → tiger-carving.js} +2 -2
- package/dist/cards/impl/trinket/tiger-carving.js.map +1 -0
- package/dist/input-sanitation.js +3 -2
- package/dist/input-sanitation.js.map +1 -1
- package/dist/simulation/add-minion-to-board.js +22 -4
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/auras.js +22 -21
- package/dist/simulation/auras.js.map +1 -1
- package/dist/simulation/blood-gems.js +2 -1
- package/dist/simulation/blood-gems.js.map +1 -1
- package/dist/simulation/deathrattle-orchestration.js +3 -0
- package/dist/simulation/deathrattle-orchestration.js.map +1 -1
- package/dist/simulation/deathrattle-spawns.d.ts +2 -2
- package/dist/simulation/deathrattle-spawns.js.map +1 -1
- package/dist/simulation/global-info-helpers.d.ts +2 -0
- package/dist/simulation/global-info-helpers.js +13 -1
- package/dist/simulation/global-info-helpers.js.map +1 -1
- package/dist/simulation/reborn.js +28 -2
- package/dist/simulation/reborn.js.map +1 -1
- package/dist/simulation/summon-when-space.js +3 -3
- package/dist/simulation/summon-when-space.js.map +1 -1
- package/dist/temp-card-ids.d.ts +12 -1
- package/dist/temp-card-ids.js +12 -1
- package/dist/temp-card-ids.js.map +1 -1
- package/package.json +1 -1
- package/dist/cards/impl/trinket/tiger-carving-token.js.map +0 -1
- /package/dist/cards/impl/trinket/{tiger-carving-token.d.ts → tiger-carving.d.ts} +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeadSeaRavager = void 0;
|
|
4
|
+
const utils_1 = require("../../../services/utils");
|
|
5
|
+
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const temp_card_ids_1 = require("../../../temp-card-ids");
|
|
7
|
+
exports.DeadSeaRavager = {
|
|
8
|
+
cardIds: [temp_card_ids_1.TempCardIds.DeadSeaRavager_BG, temp_card_ids_1.TempCardIds.DeadSeaRavager_BG_G],
|
|
9
|
+
rally: (minion, input) => {
|
|
10
|
+
const mult = minion.cardId === temp_card_ids_1.TempCardIds.DeadSeaRavager_BG_G ? 2 : 1;
|
|
11
|
+
const candidates = input.attackingBoard.filter((e) => e != minion);
|
|
12
|
+
const targets = (0, utils_1.pickMultipleRandomAlive)(candidates, 3);
|
|
13
|
+
for (const target of targets) {
|
|
14
|
+
for (let i = 0; i < mult; i++) {
|
|
15
|
+
(0, stats_1.modifyStats)(target, minion, minion.attack, 0, input.attackingBoard, input.attackingHero, input.gameState);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=dead-sea-ravager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dead-sea-ravager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dead-sea-ravager.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAElE,qDAAwD;AACxD,0DAAqD;AAGxC,QAAA,cAAc,GAAc;IACxC,OAAO,EAAE,CAAC,2BAAW,CAAC,iBAAiB,EAAE,2BAAW,CAAC,mBAAmB,CAAC;IACzE,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,2BAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,MAAM,CAAC,MAAM,EACb,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const DeadSeaRavager: RallyCard = {\r\n\tcardIds: [TempCardIds.DeadSeaRavager_BG, TempCardIds.DeadSeaRavager_BG_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.DeadSeaRavager_BG_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) => e != minion);\r\n\t\tconst targets = pickMultipleRandomAlive(candidates, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\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 { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,15 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DreamingThornweaver = void 0;
|
|
4
4
|
exports.DreamingThornweaver = {
|
|
5
5
|
cardIds: ["BG32_433", "BG32_433_G"],
|
|
6
|
-
baseAvengeValue: (cardId) =>
|
|
6
|
+
baseAvengeValue: (cardId) => 3,
|
|
7
7
|
avenge: (minion, input) => {
|
|
8
8
|
const mult = minion.cardId === "BG32_433_G" ? 2 : 1;
|
|
9
|
-
|
|
10
|
-
input.hero.globalInfo.BloodGemAttackBonus += 1 * mult;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
input.hero.globalInfo.BloodGemHealthBonus += 1 * mult;
|
|
14
|
-
}
|
|
9
|
+
input.hero.globalInfo.BloodGemHealthBonus += 1 * mult;
|
|
15
10
|
},
|
|
16
11
|
};
|
|
17
12
|
//# sourceMappingURL=dreaming-thornweaver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dreaming-thornweaver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dreaming-thornweaver.ts"],"names":[],"mappings":";;;AAKa,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,0BAA8E;IACvF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dreaming-thornweaver.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dreaming-thornweaver.ts"],"names":[],"mappings":";;;AAKa,QAAA,mBAAmB,GAAe;IAC9C,OAAO,EAAE,0BAA8E;IACvF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA2C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAI9E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;IAEvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const DreamingThornweaver: AvengeCard = {\r\n\tcardIds: [CardIds.DreamingThornweaver_BG32_433, CardIds.DreamingThornweaver_BG32_433_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DreamingThornweaver_BG32_433_G ? 2 : 1;\r\n\t\t// if (minion.scriptDataNum1 === 1) {\r\n\t\t// \tinput.hero.globalInfo.BloodGemAttackBonus += 1 * mult;\r\n\t\t// } else {\r\n\t\tinput.hero.globalInfo.BloodGemHealthBonus += 1 * mult;\r\n\t\t// }\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,7 +4,7 @@ exports.DrustfallenButcher = void 0;
|
|
|
4
4
|
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
5
|
exports.DrustfallenButcher = {
|
|
6
6
|
cardIds: ["BG32_324", "BG32_324_G"],
|
|
7
|
-
baseAvengeValue: (cardId) =>
|
|
7
|
+
baseAvengeValue: (cardId) => 3,
|
|
8
8
|
avenge: (minion, input) => {
|
|
9
9
|
const mult = minion.cardId === "BG32_324_G" ? 2 : 1;
|
|
10
10
|
const cardsToAdd = Array(mult).fill("BG28_604");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drustfallen-butcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/drustfallen-butcher.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,0BAA4E;IACrF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,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;IACtE,CAAC;CACD,CAAC","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"drustfallen-butcher.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/drustfallen-butcher.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,0BAA4E;IACrF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,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;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const DrustfallenButcher: AvengeCard = {\r\n\tcardIds: [CardIds.DrustfallenButcher_BG32_324, CardIds.DrustfallenButcher_BG32_324_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DrustfallenButcher_BG32_324_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.Butchering_BG28_604);\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IngeniousInventor = void 0;
|
|
4
|
+
const global_info_helpers_1 = require("../../../simulation/global-info-helpers");
|
|
5
|
+
const temp_card_ids_1 = require("../../../temp-card-ids");
|
|
6
|
+
exports.IngeniousInventor = {
|
|
7
|
+
cardIds: [temp_card_ids_1.TempCardIds.IngeniousInventor_BG, temp_card_ids_1.TempCardIds.IngeniousInventor_BG_G],
|
|
8
|
+
deathrattleSpawn: (minion, input) => {
|
|
9
|
+
const mult = minion.cardId === temp_card_ids_1.TempCardIds.IngeniousInventor_BG_G ? 2 : 1;
|
|
10
|
+
const atkBuff = 2 * mult * (1 + input.boardWithDeadEntityHero.globalInfo.MagnetizedThisGame);
|
|
11
|
+
(0, global_info_helpers_1.increaseMechAttackBonus)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, atkBuff, input.gameState);
|
|
12
|
+
return [];
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=ingenious-inventor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ingenious-inventor.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ingenious-inventor.ts"],"names":[],"mappings":";;;AAEA,iFAAkF;AAClF,0DAAqD;AAGxC,QAAA,iBAAiB,GAAyB;IACtD,OAAO,EAAE,CAAC,2BAAW,CAAC,oBAAoB,EAAE,2BAAW,CAAC,sBAAsB,CAAC;IAC/E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,2BAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC7F,IAAA,6CAAuB,EACtB,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,OAAO,EACP,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { increaseMechAttackBonus } from '../../../simulation/global-info-helpers';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const IngeniousInventor: DeathrattleSpawnCard = {\r\n\tcardIds: [TempCardIds.IngeniousInventor_BG, TempCardIds.IngeniousInventor_BG_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === TempCardIds.IngeniousInventor_BG_G ? 2 : 1;\r\n\t\tconst atkBuff = 2 * mult * (1 + input.boardWithDeadEntityHero.globalInfo.MagnetizedThisGame);\r\n\t\tincreaseMechAttackBonus(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tatkBuff,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,8 +4,8 @@ exports.KingBagurgle = void 0;
|
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
|
-
const baseAttackBuff =
|
|
8
|
-
const baseHealthBuff =
|
|
7
|
+
const baseAttackBuff = 4;
|
|
8
|
+
const baseHealthBuff = 4;
|
|
9
9
|
exports.KingBagurgle = {
|
|
10
10
|
cardIds: ["BGS_030", "TB_BaconUps_100"],
|
|
11
11
|
battlecry: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"king-bagurgle.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/king-bagurgle.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,8BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,cAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,cAAc,GAAG,IAAI,EACrB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * King Bagurgle (Tier 3, 2/3) — 35.2 tier/stats change; effect unchanged.\r\n * Battlecry: Give all other Murlocs in your hand and board +2/+3.\r\n *\r\n * Golden King Bagurgle (Tier 3, 4/6)\r\n * Battlecry: Give all other Murlocs in your hand and board +4/+6.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nconst baseAttackBuff =
|
|
1
|
+
{"version":3,"file":"king-bagurgle.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/king-bagurgle.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,8BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,cAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC;aAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,cAAc,GAAG,IAAI,EACrB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * King Bagurgle (Tier 3, 2/3) — 35.2 tier/stats change; effect unchanged.\r\n * Battlecry: Give all other Murlocs in your hand and board +2/+3.\r\n *\r\n * Golden King Bagurgle (Tier 3, 4/6)\r\n * Battlecry: Give all other Murlocs in your hand and board +4/+6.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nconst baseAttackBuff = 4;\r\nconst baseHealthBuff = 4;\r\n\r\nexport const KingBagurgle: BattlecryCard = {\r\n\tcardIds: [CardIds.KingBagurgle_BGS_030, CardIds.KingBagurgle_TB_BaconUps_100],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.KingBagurgle_BGS_030 ? 1 : 2;\r\n\t\tconst targets = [...input.board, ...input.hero.hand]\r\n\t\t\t.filter((e) => e.entityId !== minion.entityId)\r\n\t\t\t.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\tfor (const entity of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tentity,\r\n\t\t\t\tminion,\r\n\t\t\t\tbaseAttackBuff * mult,\r\n\t\t\t\tbaseHealthBuff * mult,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\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"]}
|
|
@@ -10,7 +10,7 @@ exports.NalaaTheRedeemer = {
|
|
|
10
10
|
const hasPortrait = (_a = input.hero.trinkets) === null || _a === void 0 ? void 0 : _a.some((t) => t.cardId === "BG30_MagicItem_944");
|
|
11
11
|
const extraAtk = hasPortrait ? 2 : 0;
|
|
12
12
|
const extraHp = hasPortrait ? 2 : 0;
|
|
13
|
-
(0, utils_1.grantStatsToMinionsOfEachType)(minion, input.board, input.hero,
|
|
13
|
+
(0, utils_1.grantStatsToMinionsOfEachType)(minion, input.board, input.hero, 4 * mult + extraAtk, 3 * mult + extraHp, input.gameState);
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=nalaa-the-redeemer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nalaa-the-redeemer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nalaa-the-redeemer.ts"],"names":[],"mappings":";;;AAEA,0CAA+D;AAGlD,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"nalaa-the-redeemer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nalaa-the-redeemer.ts"],"names":[],"mappings":";;;AAEA,0CAA+D;AAGlD,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,GAAG,QAAQ,EACnB,CAAC,GAAG,IAAI,GAAG,OAAO,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const NalaaTheRedeemer: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.NalaaTheRedeemer_BG28_551, CardIds.NalaaTheRedeemer_BG28_551_G],\r\n\tonTavernSpellCast: (minion: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.NalaaTheRedeemer_BG28_551_G ? 2 : 1;\r\n\t\tconst hasPortrait = input.hero.trinkets?.some((t) => t.cardId === CardIds.RedeemerPortrait_BG30_MagicItem_944);\r\n\t\tconst extraAtk = hasPortrait ? 2 : 0;\r\n\t\tconst extraHp = hasPortrait ? 2 : 0;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tminion,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\t4 * mult + extraAtk,\r\n\t\t\t3 * mult + extraHp,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,7 +5,7 @@ const divine_shield_1 = require("../../../keywords/divine-shield");
|
|
|
5
5
|
const attack_1 = require("../../../simulation/attack");
|
|
6
6
|
exports.Poultron = {
|
|
7
7
|
cardIds: ["BG33_371", "BG33_371_G"],
|
|
8
|
-
baseAvengeValue: (cardId) =>
|
|
8
|
+
baseAvengeValue: (cardId) => 5,
|
|
9
9
|
avenge: (minion, input) => {
|
|
10
10
|
if (minion.health <= 0 || minion.definitelyDead) {
|
|
11
11
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poultron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/poultron.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"poultron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/poultron.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAErE,uDAA4D;AAI/C,QAAA,QAAQ,GAAe;IACnC,OAAO,EAAE,0BAAwD;IACjE,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;QACnD,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE;YAChD,OAAO;SACP;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC;QAG/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YACxB,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5F,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,IAAA,uBAAc,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5F,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;YACzC,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC;SACnC;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { simulateAttack } from '../../../simulation/attack';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const Poultron: AvengeCard = {\r\n\tcardIds: [CardIds.P0ulTr0n_BG33_371, CardIds.P0ulTr0n_BG33_371_G],\r\n\tbaseAvengeValue: (cardId) => 5,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tif (minion.health <= 0 || minion.definitelyDead) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = minion.cardId === CardIds.P0ulTr0n_BG33_371_G ? 2 : 1;\r\n\t\tconst previousHasAttacked = minion.hasAttacked;\r\n\t\t// Not sure why, but with Windfury it looks like the divine shield is granted each time\r\n\t\t// It's a bug, so once it's fixed I should remove this\r\n\t\tconst previousWindfury = minion.windfury;\r\n\t\tconst totalAttacks = mult;\r\n\t\tfor (let i = 0; i < totalAttacks; i++) {\r\n\t\t\tminion.windfury = false;\r\n\t\t\tupdateDivineShield(minion, input.board, input.hero, input.otherHero, true, input.gameState);\r\n\t\t\tminion.attackImmediately = true;\r\n\t\t\tsimulateAttack(input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);\r\n\t\t\tminion.hasAttacked = previousHasAttacked;\r\n\t\t\tminion.attackImmediately = false;\r\n\t\t\tminion.windfury = previousWindfury;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,7 +4,7 @@ exports.StompingStegodon = exports.stompingStegodonHealth = exports.stompingSteg
|
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
|
-
exports.stompingStegodonAttack =
|
|
7
|
+
exports.stompingStegodonAttack = 3;
|
|
8
8
|
exports.stompingStegodonHealth = 0;
|
|
9
9
|
exports.StompingStegodon = {
|
|
10
10
|
cardIds: ["BG33_840", "BG33_840_G"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,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,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,GAAG,CAAC,MAAA,mBAAmB,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACrE;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Stomping Stegodon (Tier 4, 4/3)\r\n * Rally: Give your other Beasts +4 Attack and this Rally.\r\n *\r\n * Golden Stomping Stegodon (Tier 4, 8/6)\r\n * Rally: Give your other Beasts +8 Attack and this Rally.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack =
|
|
1
|
+
{"version":3,"file":"stomping-stegodon.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/stomping-stegodon.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,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,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,KAAK,CAAC,QAAQ;YACpB,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;QACF,MAAM,sBAAsB,GAC3B,MAAM,CAAC,MAAM,iBAAwC;YACpD,CAAC;YACD,CAAC,aAAwD,CAAC;QAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YACnC,IAAA,mBAAW,EACV,SAAS,EACT,KAAK,CAAC,QAAQ,EACd,8BAAsB,GAAG,IAAI,EAC7B,8BAAsB,GAAG,IAAI,EAC7B,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;YAEF,IAAI,mBAAmB,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,CAAC;YAClG,IAAI,CAAC,mBAAmB,EAAE;gBACzB,mBAAmB,GAAG;oBACrB,MAAM,EAAE,sBAAsB;oBAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;oBACvC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;oBACrD,OAAO,EAAE,CAAC;iBACV,CAAC;gBACF,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACjD;YACD,mBAAmB,CAAC,OAAO,GAAG,CAAC,MAAA,mBAAmB,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACrE;QAED,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Stomping Stegodon (Tier 4, 4/3)\r\n * Rally: Give your other Beasts +4 Attack and this Rally.\r\n *\r\n * Golden Stomping Stegodon (Tier 4, 8/6)\r\n * Rally: Give your other Beasts +8 Attack and this Rally.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const stompingStegodonAttack = 3;\r\nexport const stompingStegodonHealth = 0;\r\n\r\nexport const StompingStegodon: RallyCard = {\r\n\tcardIds: [CardIds.StompingStegodon_BG33_840, CardIds.StompingStegodon_BG33_840_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.StompingStegodon_BG33_840_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te !== input.attacker &&\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\te,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tRace.BEAST,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t),\r\n\t\t);\r\n\t\tconst enchantmentCardIdToAdd =\r\n\t\t\tminion.cardId === CardIds.StompingStegodon_BG33_840_G\r\n\t\t\t\t? CardIds.StompingStegodon_StompingEnchantment_BG33_840_Ge2\r\n\t\t\t\t: CardIds.StompingStegodon_StompingEnchantment_BG33_840e2;\r\n\t\tfor (const candidate of candidates) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tcandidate,\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tstompingStegodonAttack * mult,\r\n\t\t\t\tstompingStegodonHealth * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\r\n\t\t\tlet existingEnchantment = candidate.enchantments.find((e) => e.cardId === enchantmentCardIdToAdd);\r\n\t\t\tif (!existingEnchantment) {\r\n\t\t\t\texistingEnchantment = {\r\n\t\t\t\t\tcardId: enchantmentCardIdToAdd,\r\n\t\t\t\t\toriginEntityId: input.attacker.entityId,\r\n\t\t\t\t\ttiming: input.gameState.sharedState.currentEntityId++,\r\n\t\t\t\t\trepeats: 0,\r\n\t\t\t\t};\r\n\t\t\t\tcandidate.enchantments.push(existingEnchantment);\r\n\t\t\t}\r\n\t\t\texistingEnchantment.repeats = (existingEnchantment.repeats ?? 0) + 1;\r\n\t\t}\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Vinespeaker = void 0;
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const temp_card_ids_1 = require("../../../temp-card-ids");
|
|
5
6
|
const utils_1 = require("../../../utils");
|
|
6
7
|
exports.Vinespeaker = {
|
|
7
8
|
cardIds: ["BG35_437", "BG35_437_G"],
|
|
@@ -11,6 +12,10 @@ exports.Vinespeaker = {
|
|
|
11
12
|
}
|
|
12
13
|
const mult = minion.cardId === "BG35_437_G" ? 2 : 1;
|
|
13
14
|
input.hero.globalInfo.BloodGemAttackBonus += 1 * mult;
|
|
15
|
+
const portraits = input.hero.trinkets.filter((t) => t.cardId === temp_card_ids_1.TempCardIds.VinespeakerPortrait);
|
|
16
|
+
if (portraits.length > 0) {
|
|
17
|
+
input.hero.globalInfo.BloodGemHealthBonus += 1 * mult;
|
|
18
|
+
}
|
|
14
19
|
},
|
|
15
20
|
};
|
|
16
21
|
//# sourceMappingURL=vinespeaker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vinespeaker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vinespeaker.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAIvD,0CAAmD;AAGtC,QAAA,WAAW,GAAmC;IAC1D,OAAO,EAAE,0BAA8D;IACvE,0BAA0B,EAAE,CAAC,MAAmB,EAAE,KAAsC,EAAE,EAAE;QAC3F,IAAI,CAAC,IAAA,yBAAiB,EAAC,KAAK,CAAC,UAAU,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACxF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"vinespeaker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/vinespeaker.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAIvD,0DAAqD;AACrD,0CAAmD;AAGtC,QAAA,WAAW,GAAmC;IAC1D,OAAO,EAAE,0BAA8D;IACvE,0BAA0B,EAAE,CAAC,MAAmB,EAAE,KAAsC,EAAE,EAAE;QAC3F,IAAI,CAAC,IAAA,yBAAiB,EAAC,KAAK,CAAC,UAAU,EAAE,wBAAO,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACxF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2BAAW,CAAC,mBAAmB,CAAC,CAAC;QAClG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,GAAG,IAAI,CAAC;SACtD;IACF,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 { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { hasEntityMechanic } from '../../../utils';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const Vinespeaker: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.Vinespeaker_BG35_437, CardIds.Vinespeaker_BG35_437_G],\r\n\tonAfterFriendlyMinionDeath: (minion: BoardEntity, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tif (!hasEntityMechanic(input.deadEntity, GameTag.DEATHRATTLE, input.gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = minion.cardId === CardIds.Vinespeaker_BG35_437_G ? 2 : 1;\r\n\t\tinput.hero.globalInfo.BloodGemAttackBonus += 1 * mult;\r\n\t\tconst portraits = input.hero.trinkets.filter((t) => t.cardId === TempCardIds.VinespeakerPortrait);\r\n\t\tif (portraits.length > 0) {\r\n\t\t\tinput.hero.globalInfo.BloodGemHealthBonus += 1 * mult;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TrudgeThroughLava = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
exports.TrudgeThroughLava = {
|
|
6
|
+
cardIds: [
|
|
7
|
+
"BG30_117t2",
|
|
8
|
+
"BG30_117_Gt2",
|
|
9
|
+
],
|
|
10
|
+
castTavernSpell: (spellCardId, input) => {
|
|
11
|
+
const mult = spellCardId === "BG30_117_Gt2" ? 2 : 1;
|
|
12
|
+
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, 4 * mult, 0, input.gameState);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=trudge-through-lava.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trudge-through-lava.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/trudge-through-lava.ts"],"names":[],"mappings":";;;AACA,0CAAiD;AAGpC,QAAA,iBAAiB,GAAoB;IACjD,OAAO,EAAE;;;KAGR;IACD,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,WAAW,mBAAgE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjG,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const TrudgeThroughLava: TavernSpellCard = {\r\n\tcardIds: [\r\n\t\tCardIds.VolcanicVisitor_TrudgeThroughLavaToken_BG30_117t2,\r\n\t\tCardIds.VolcanicVisitor_TrudgeThroughLavaToken_BG30_117_Gt2,\r\n\t],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.VolcanicVisitor_TrudgeThroughLavaToken_BG30_117_Gt2 ? 2 : 1;\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, 4 * mult, 0, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UseSupplies = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
exports.UseSupplies = {
|
|
6
|
+
cardIds: [
|
|
7
|
+
"BG30_117t3",
|
|
8
|
+
"BG30_117_Gt3",
|
|
9
|
+
],
|
|
10
|
+
castTavernSpell: (spellCardId, input) => {
|
|
11
|
+
const mult = spellCardId === "BG30_117t3" ? 2 : 1;
|
|
12
|
+
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, 0, 4 * mult, input.gameState);
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=use-supplies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-supplies.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/use-supplies.ts"],"names":[],"mappings":";;;AACA,0CAAiD;AAGpC,QAAA,WAAW,GAAoB;IAC3C,OAAO,EAAE;;;KAGR;IACD,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAwD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const UseSupplies: TavernSpellCard = {\r\n\tcardIds: [\r\n\t\tCardIds.VolcanicVisitor_UseSuppliesToken_BG30_117t3,\r\n\t\tCardIds.VolcanicVisitor_UseSuppliesToken_BG30_117_Gt3,\r\n\t],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.VolcanicVisitor_UseSuppliesToken_BG30_117t3 ? 2 : 1;\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, 0, 4 * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VolcanicVisitor = void 0;
|
|
4
|
+
const trudge_through_lava_1 = require("./trudge-through-lava");
|
|
5
|
+
const use_supplies_1 = require("./use-supplies");
|
|
6
|
+
exports.VolcanicVisitor = {
|
|
7
|
+
cardIds: ["BG30_117", "BG30_117_G"],
|
|
8
|
+
castTavernSpell: (spellCardId, input) => {
|
|
9
|
+
if (Math.random() < 0.5) {
|
|
10
|
+
return trudge_through_lava_1.TrudgeThroughLava.castTavernSpell(spellCardId, input);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return use_supplies_1.UseSupplies.castTavernSpell(spellCardId, input);
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=volcanic-visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volcanic-visitor.js","sourceRoot":"","sources":["../../../../src/cards/impl/spellcraft/volcanic-visitor.ts"],"names":[],"mappings":";;;AAEA,+DAA0D;AAC1D,iDAA6C;AAEhC,QAAA,eAAe,GAAoB;IAC/C,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE;YACxB,OAAO,uCAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC7D;aAAM;YACN,OAAO,0BAAW,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SACvD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\nimport { TrudgeThroughLava } from './trudge-through-lava';\r\nimport { UseSupplies } from './use-supplies';\r\n\r\nexport const VolcanicVisitor: TavernSpellCard = {\r\n\tcardIds: [CardIds.VolcanicVisitor_BG30_117, CardIds.VolcanicVisitor_BG30_117_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tif (Math.random() < 0.5) {\r\n\t\t\treturn TrudgeThroughLava.castTavernSpell(spellCardId, input);\r\n\t\t} else {\r\n\t\t\treturn UseSupplies.castTavernSpell(spellCardId, input);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -7,7 +7,7 @@ const spawns_1 = require("../../../simulation/spawns");
|
|
|
7
7
|
const utils_1 = require("../../../utils");
|
|
8
8
|
exports.BloodGolemSticker = {
|
|
9
9
|
cardIds: ["BG30_MagicItem_442"],
|
|
10
|
-
defaultScriptDataNum: (cardId) =>
|
|
10
|
+
defaultScriptDataNum: (cardId) => 9999,
|
|
11
11
|
onAfterDeath: (trinket, input) => {
|
|
12
12
|
const { hero, gameState, board, otherBoard, otherHero } = input;
|
|
13
13
|
for (const deadEntity of input.deadEntities) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blood-golem-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/blood-golem-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,+EAAuE;AACvE,uDAAiE;AACjE,0CAAiD;AAKpC,QAAA,iBAAiB,GAAgD;IAC7E,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"blood-golem-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/blood-golem-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,+EAAuE;AACvE,uDAAiE;AACjE,0CAAiD;AAKpC,QAAA,iBAAiB,GAAgD;IAC7E,OAAO,EAAE,sBAA8C;IACvD,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI;IAC9C,YAAY,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;QACjE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAChE,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,YAAY,EAAE;YAC5C,IACC,UAAU,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBACrC,OAAO,CAAC,cAAc,GAAG,CAAC;gBAC1B,IAAA,uBAAe,EAAC,UAAU,EAAE,IAAI,EAAE,qBAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EACxF;gBAED,MAAM,cAAc,GAAG,KAAK,CAAC,4BAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtG,IAAI,oBAAoB,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAA0C,CACzD,CAAC;gBACF,IAAI,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,MAAK,CAAC,EAAE;oBACvC,oBAAoB,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,gBAAyC,CACxD,CAAC;iBACF;gBACD,IAAI,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,MAAM,IAAG,CAAC,EAAE;oBACrC,MAAM,cAAc,GAAG,oBAAoB;yBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,iBAAiB,mCAAI,CAAC,CAAA,EAAA,CAAC;yBACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC7B,MAAM,cAAc,GAAG,oBAAoB;yBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,iBAAiB,mCAAI,CAAC,CAAA,EAAA,CAAC;yBACpC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC7B,IAAI,cAAc,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE;wBAC7C,MAAM,MAAM,GAAG,IAAA,kCAAa,yBAE3B,CAAC,EACD,KAAK,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,CAAC,QAAQ,EACnB,KAAK,CACL,CAAC;wBACF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BACpB,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC;4BAC1B,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC;4BAC1B,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;wBACxC,CAAC,CAAC,CAAC;wBACH,IAAA,4BAAmB,EAClB,MAAM,EACN,KAAK,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,SAAS,CACT,CAAC;wBACF,OAAO,CAAC,cAAc,EAAE,CAAC;qBACzB;iBACD;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterDeathInput } from '../../../simulation/attack';\r\nimport { spawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { performEntitySpawns } from '../../../simulation/spawns';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultScriptDataNumCard, OnAfterDeathCard } from '../../card.interface';\r\n\r\n// 2026-04-17: Deathrattles trigger before the Sticker\r\n// https://replays.firestoneapp.com/?reviewId=99605623-18e1-45ad-a7a1-daf7ef29adcb&turn=23&action=7\r\nexport const BloodGolemSticker: OnAfterDeathCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.BloodGolemSticker_BG30_MagicItem_442],\r\n\tdefaultScriptDataNum: (cardId: string) => 9999, // Unlimited, just easier to update\r\n\tonAfterDeath: (trinket: BoardTrinket, input: OnAfterDeathInput) => {\r\n\t\tconst { hero, gameState, board, otherBoard, otherHero } = input;\r\n\t\tfor (const deadEntity of input.deadEntities) {\r\n\t\t\tif (\r\n\t\t\t\tdeadEntity.friendly === hero.friendly &&\r\n\t\t\t\ttrinket.scriptDataNum1 > 0 &&\r\n\t\t\t\thasCorrectTribe(deadEntity, hero, Race.QUILBOAR, gameState.anomalies, gameState.allCards)\r\n\t\t\t) {\r\n\t\t\t\t// -1 because the minion is already removed from the board\r\n\t\t\t\tconst indexFromRight = input.deadEntitiesIndexesFromRight[input.deadEntities.indexOf(deadEntity)] + 1;\r\n\t\t\t\tlet bloodGemEnchantments = deadEntity.enchantments.filter(\r\n\t\t\t\t\t(e) => e.cardId === CardIds.BloodGem_BloodGemsEnchantment,\r\n\t\t\t\t);\r\n\t\t\t\tif (bloodGemEnchantments?.length === 0) {\r\n\t\t\t\t\tbloodGemEnchantments = deadEntity.enchantments.filter(\r\n\t\t\t\t\t\t(e) => e.cardId === CardIds.BloodGem_BloodGemEnchantment,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t\tif (bloodGemEnchantments?.length > 0) {\r\n\t\t\t\t\tconst bloodGemAttack = bloodGemEnchantments\r\n\t\t\t\t\t\t.map((e) => e.tagScriptDataNum1 ?? 0)\r\n\t\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\t\tconst bloodGemHealth = bloodGemEnchantments\r\n\t\t\t\t\t\t.map((e) => e.tagScriptDataNum2 ?? 0)\r\n\t\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\t\tif (bloodGemAttack > 0 || bloodGemHealth > 0) {\r\n\t\t\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.BloodGolemSticker_BloodGolemToken_BG30_MagicItem_442t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboard,\r\n\t\t\t\t\t\t\thero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tspawns.forEach((b) => {\r\n\t\t\t\t\t\t\tb.attack = bloodGemAttack;\r\n\t\t\t\t\t\t\tb.health = bloodGemHealth;\r\n\t\t\t\t\t\t\tb.hasAttacked = deadEntity.hasAttacked;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tperformEntitySpawns(\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tboard,\r\n\t\t\t\t\t\t\thero,\r\n\t\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\t\tindexFromRight,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\ttrinket.scriptDataNum1--;\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},\r\n};\r\n"]}
|
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BluegillFlippers = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const baseAttackBuff = 4;
|
|
6
|
+
const baseHealthBuff = 4;
|
|
4
7
|
exports.BluegillFlippers = {
|
|
5
8
|
cardIds: ["BG32_MagicItem_893"],
|
|
6
9
|
afterTavernSpellCast: (trinket, input) => {
|
|
7
|
-
var _a, _b, _c, _d, _e;
|
|
10
|
+
var _a, _b, _c, _d, _e, _f;
|
|
8
11
|
if (input.source !== input.hero)
|
|
9
12
|
return;
|
|
10
|
-
const
|
|
13
|
+
const board = (_a = input.board) !== null && _a !== void 0 ? _a : [];
|
|
14
|
+
if (board.length > 0) {
|
|
15
|
+
const leftMost = board[0];
|
|
16
|
+
if (leftMost) {
|
|
17
|
+
(0, stats_1.modifyStats)(leftMost, trinket, baseAttackBuff, baseHealthBuff, input.board, input.hero, input.gameState);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const hand = (_b = input.hero.hand) !== null && _b !== void 0 ? _b : [];
|
|
11
21
|
if (hand.length > 0) {
|
|
12
|
-
const leftMost = hand[0];
|
|
22
|
+
const leftMost = hand.filter((c) => !!c.maxHealth)[0];
|
|
13
23
|
if (leftMost) {
|
|
14
24
|
const refCard = input.gameState.allCards.getCard(leftMost.cardId);
|
|
15
25
|
if ((refCard === null || refCard === void 0 ? void 0 : refCard.attack) != null) {
|
|
16
|
-
leftMost.attack = ((
|
|
17
|
-
leftMost.health = ((
|
|
26
|
+
leftMost.attack = ((_d = (_c = leftMost.attack) !== null && _c !== void 0 ? _c : refCard.attack) !== null && _d !== void 0 ? _d : 0) + baseAttackBuff;
|
|
27
|
+
leftMost.health = ((_f = (_e = leftMost.health) !== null && _e !== void 0 ? _e : refCard.health) !== null && _f !== void 0 ? _f : 0) + baseHealthBuff;
|
|
18
28
|
}
|
|
19
29
|
}
|
|
20
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bluegill-flippers.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bluegill-flippers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"bluegill-flippers.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bluegill-flippers.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAGxD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,gBAAgB,GAA6B;IACzD,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAAE,OAAO;QAExC,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,QAAQ,EAAE;gBACb,IAAA,mBAAW,EACV,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QAED,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE;gBACb,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,IAAI,EAAE;oBAC5B,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,cAAc,CAAC;oBAC5E,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,MAAM,mCAAI,OAAO,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,cAAc,CAAC;iBAC5E;aACD;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nconst baseAttackBuff = 4;\r\nconst baseHealthBuff = 4;\r\n\r\nexport const BluegillFlippers: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BluegillFlippers_BG32_MagicItem_893],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) return;\r\n\r\n\t\tconst board = input.board ?? [];\r\n\t\tif (board.length > 0) {\r\n\t\t\tconst leftMost = board[0];\r\n\t\t\tif (leftMost) {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\tleftMost,\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\tbaseAttackBuff,\r\n\t\t\t\t\tbaseHealthBuff,\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\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\r\n\t\tconst hand = input.hero.hand ?? [];\r\n\t\tif (hand.length > 0) {\r\n\t\t\tconst leftMost = hand.filter((c) => !!c.maxHealth)[0];\r\n\t\t\tif (leftMost) {\r\n\t\t\t\tconst refCard = input.gameState.allCards.getCard(leftMost.cardId);\r\n\t\t\t\tif (refCard?.attack != null) {\r\n\t\t\t\t\tleftMost.attack = (leftMost.attack ?? refCard.attack ?? 0) + baseAttackBuff;\r\n\t\t\t\t\tleftMost.health = (leftMost.health ?? refCard.health ?? 0) + baseHealthBuff;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,12 +4,15 @@ exports.CopperCoil = void 0;
|
|
|
4
4
|
exports.CopperCoil = {
|
|
5
5
|
cardIds: ["BG35_MagicItem_300", "BG35_MagicItem_300t"],
|
|
6
6
|
onBeforeMagnetize: (trinket, input) => {
|
|
7
|
-
var _a, _b;
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
var _a, _b, _c, _d;
|
|
8
|
+
const additionalAttackBuff = trinket.cardId === "BG35_MagicItem_300" ? 2 : 3;
|
|
9
|
+
const additionalHealthBuff = trinket.cardId === "BG35_MagicItem_300" ? 1 : 3;
|
|
10
|
+
const currentAttackBuff = (_a = trinket.scriptDataNum1) !== null && _a !== void 0 ? _a : additionalAttackBuff;
|
|
11
|
+
const currentHealthBuff = (_b = trinket.scriptDataNum2) !== null && _b !== void 0 ? _b : additionalHealthBuff;
|
|
12
|
+
input.magnetizedCard.attack += currentAttackBuff;
|
|
13
|
+
input.magnetizedCard.health += currentHealthBuff;
|
|
14
|
+
trinket.scriptDataNum1 = ((_c = trinket.scriptDataNum1) !== null && _c !== void 0 ? _c : 0) + additionalAttackBuff;
|
|
15
|
+
trinket.scriptDataNum2 = ((_d = trinket.scriptDataNum2) !== null && _d !== void 0 ? _d : 0) + additionalHealthBuff;
|
|
13
16
|
},
|
|
14
17
|
};
|
|
15
18
|
//# sourceMappingURL=copper-coil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copper-coil.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/copper-coil.ts"],"names":[],"mappings":";;;AAKa,QAAA,UAAU,GAA0B;IAChD,OAAO,EAAE,6CAA+F;IACxG,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAA6B,EAAE,EAAE;;QAC3E,MAAM,
|
|
1
|
+
{"version":3,"file":"copper-coil.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/copper-coil.ts"],"names":[],"mappings":";;;AAKa,QAAA,UAAU,GAA0B;IAChD,OAAO,EAAE,6CAA+F;IACxG,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAA6B,EAAE,EAAE;;QAC3E,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,oBAAoB,CAAC;QACzE,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,oBAAoB,CAAC;QACzE,KAAK,CAAC,cAAc,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACjD,KAAK,CAAC,cAAc,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACjD,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC;QAC9E,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAC/E,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeInput } from '../../../simulation/magnetize';\r\nimport { OnBeforeMagnetizeCard } from '../../card.interface';\r\n\r\nexport const CopperCoil: OnBeforeMagnetizeCard = {\r\n\tcardIds: [CardIds.CopperCoil_BG35_MagicItem_300, CardIds.CopperCoil_CopperCoilToken_BG35_MagicItem_300t],\r\n\tonBeforeMagnetize: (trinket: BoardTrinket, input: OnBeforeMagnetizeInput) => {\r\n\t\tconst additionalAttackBuff = trinket.cardId === CardIds.CopperCoil_BG35_MagicItem_300 ? 2 : 3;\r\n\t\tconst additionalHealthBuff = trinket.cardId === CardIds.CopperCoil_BG35_MagicItem_300 ? 1 : 3;\r\n\t\tconst currentAttackBuff = trinket.scriptDataNum1 ?? additionalAttackBuff;\r\n\t\tconst currentHealthBuff = trinket.scriptDataNum2 ?? additionalHealthBuff;\r\n\t\tinput.magnetizedCard.attack += currentAttackBuff;\r\n\t\tinput.magnetizedCard.health += currentHealthBuff;\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 ?? 0) + additionalAttackBuff;\r\n\t\ttrinket.scriptDataNum2 = (trinket.scriptDataNum2 ?? 0) + additionalHealthBuff;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeathtouchApple = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
|
+
const reborn_1 = require("../../../keywords/reborn");
|
|
6
|
+
const temp_card_ids_1 = require("../../../temp-card-ids");
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
exports.DeathtouchApple = {
|
|
9
|
+
cardIds: [temp_card_ids_1.TempCardIds.DeathtouchApple],
|
|
10
|
+
defaultScriptDataNum: (cardId) => 3,
|
|
11
|
+
afterReborn: (trinket, input) => {
|
|
12
|
+
if (trinket.scriptDataNum1 > 0) {
|
|
13
|
+
const target = input.rebornEntity;
|
|
14
|
+
if ((0, utils_1.hasCorrectTribe)(target, input.boardWithKilledMinionHero, reference_data_1.Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards)) {
|
|
15
|
+
(0, reborn_1.updateReborn)(target, true, input.boardWithKilledMinion, input.boardWithKilledMinionHero, input.opponentBoardHero, input.gameState);
|
|
16
|
+
input.gameState.spectator.registerPowerTarget(trinket, target, input.boardWithKilledMinion, input.boardWithKilledMinionHero, input.opponentBoardHero);
|
|
17
|
+
trinket.scriptDataNum1--;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=deathtouch-apple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deathtouch-apple.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/deathtouch-apple.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AAExD,0DAAqD;AACrD,0CAAiD;AAGpC,QAAA,eAAe,GAA+C;IAC1E,OAAO,EAAE,CAAC,2BAAW,CAAC,eAAe,CAAC;IACtC,oBAAoB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IAC3C,WAAW,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;QAChE,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;YAClC,IACC,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,yBAAyB,EAC/B,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;gBACD,IAAA,qBAAY,EACX,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,qBAAqB,EAC3B,KAAK,CAAC,yBAAyB,EAC/B,KAAK,CAAC,iBAAiB,EACvB,KAAK,CAAC,SAAS,CACf,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,OAAO,EACP,MAAM,EACN,KAAK,CAAC,qBAAqB,EAC3B,KAAK,CAAC,yBAAyB,EAC/B,KAAK,CAAC,iBAAiB,CACvB,CAAC;gBACF,OAAO,CAAC,cAAc,EAAE,CAAC;aACzB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { RebornEffectInput } from '../../../simulation/reborn';\r\nimport { TempCardIds } from '../../../temp-card-ids';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterRebornCard, DefaultScriptDataNumCard } from '../../card.interface';\r\n\r\nexport const DeathtouchApple: AfterRebornCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [TempCardIds.DeathtouchApple],\r\n\tdefaultScriptDataNum: (cardId: string) => 3,\r\n\tafterReborn: (trinket: BoardTrinket, input: RebornEffectInput) => {\r\n\t\tif (trinket.scriptDataNum1 > 0) {\r\n\t\t\tconst target = input.rebornEntity;\r\n\t\t\tif (\r\n\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.boardWithKilledMinionHero,\r\n\t\t\t\t\tRace.UNDEAD,\r\n\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdateReborn(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tinput.boardWithKilledMinion,\r\n\t\t\t\t\tinput.boardWithKilledMinionHero,\r\n\t\t\t\t\tinput.opponentBoardHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\ttrinket,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.boardWithKilledMinion,\r\n\t\t\t\t\tinput.boardWithKilledMinionHero,\r\n\t\t\t\t\tinput.opponentBoardHero,\r\n\t\t\t\t);\r\n\t\t\t\ttrinket.scriptDataNum1--;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -14,8 +14,8 @@ exports.LorewalkerScroll = {
|
|
|
14
14
|
if (!input.target || input.target.health <= 0 || input.target.definitelyDead)
|
|
15
15
|
return;
|
|
16
16
|
const isGreater = trinket.cardId === "BG30_MagicItem_422t";
|
|
17
|
-
const attack = isGreater ? 10 :
|
|
18
|
-
const health = isGreater ? 10 :
|
|
17
|
+
const attack = isGreater ? 10 : 4;
|
|
18
|
+
const health = isGreater ? 10 : 4;
|
|
19
19
|
(0, stats_1.modifyStats)(input.target, trinket, attack, health, input.board, input.hero, input.gameState);
|
|
20
20
|
},
|
|
21
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lorewalker-scroll.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/lorewalker-scroll.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE;;;KAGR;IACD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;YAChC,OAAO;SACP;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO;QACrF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,0BAAuE,CAAC;QACxG,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const LorewalkerScroll: OnTavernSpellCastCard = {\r\n\tcardIds: [\r\n\t\tCardIds.LorewalkerScroll_BG30_MagicItem_422,\r\n\t\tCardIds.LorewalkerScroll_LorewalkerScrollToken_BG30_MagicItem_422t,\r\n\t],\r\n\tonTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!input.target || input.target.health <= 0 || input.target.definitelyDead) return;\r\n\t\tconst isGreater = trinket.cardId === CardIds.LorewalkerScroll_LorewalkerScrollToken_BG30_MagicItem_422t;\r\n\t\tconst attack = isGreater ? 10 :
|
|
1
|
+
{"version":3,"file":"lorewalker-scroll.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/lorewalker-scroll.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE;;;KAGR;IACD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;YAChC,OAAO;SACP;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO;QACrF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,0BAAuE,CAAC;QACxG,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const LorewalkerScroll: OnTavernSpellCastCard = {\r\n\tcardIds: [\r\n\t\tCardIds.LorewalkerScroll_BG30_MagicItem_422,\r\n\t\tCardIds.LorewalkerScroll_LorewalkerScrollToken_BG30_MagicItem_422t,\r\n\t],\r\n\tonTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!input.target || input.target.health <= 0 || input.target.definitelyDead) return;\r\n\t\tconst isGreater = trinket.cardId === CardIds.LorewalkerScroll_LorewalkerScrollToken_BG30_MagicItem_422t;\r\n\t\tconst attack = isGreater ? 10 : 4;\r\n\t\tconst health = isGreater ? 10 : 4;\r\n\t\tmodifyStats(input.target, trinket, attack, health, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LuckyTabby = void 0;
|
|
4
|
-
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
4
|
const utils_1 = require("../../../services/utils");
|
|
5
|
+
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
6
6
|
exports.LuckyTabby = {
|
|
7
7
|
cardIds: ["BG30_MagicItem_931"],
|
|
8
8
|
onAfterFriendlyMinionDeath: (listener, input) => {
|
|
9
9
|
const trinket = listener;
|
|
10
10
|
if (!trinket.scriptDataNum1) {
|
|
11
|
-
trinket.scriptDataNum1 =
|
|
11
|
+
trinket.scriptDataNum1 = 7;
|
|
12
12
|
}
|
|
13
13
|
trinket.scriptDataNum1--;
|
|
14
14
|
if (trinket.scriptDataNum1 === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucky-tabby.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/lucky-tabby.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"lucky-tabby.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/lucky-tabby.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AAErD,qEAAmE;AAGtD,QAAA,UAAU,GAAmC;IACzD,OAAO,EAAE,sBAAuC;IAChD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC5B,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;SAC3B;QACD,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,cAAc,KAAK,CAAC,EAAE;YACjC,MAAM,WAAW,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtE,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxE;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const LuckyTabby: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.LuckyTabby_BG30_MagicItem_931],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\tif (!trinket.scriptDataNum1) {\r\n\t\t\ttrinket.scriptDataNum1 = 7;\r\n\t\t}\r\n\t\ttrinket.scriptDataNum1--;\r\n\t\tif (trinket.scriptDataNum1 === 0) {\r\n\t\t\tconst randomBeast = pickRandom(input.gameState.cardsData.beastSpawns);\r\n\t\t\taddCardsInHand(input.hero, input.board, [randomBeast], input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,7 +9,7 @@ exports.PowderKeg = {
|
|
|
9
9
|
startOfCombatTiming: 'start-of-combat',
|
|
10
10
|
startOfCombat: (trinket, input) => {
|
|
11
11
|
const pirates = input.playerBoard.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.PIRATE, input.gameState.anomalies, input.gameState.allCards));
|
|
12
|
-
const targets = (0, utils_1.pickMultipleRandomAlive)(pirates,
|
|
12
|
+
const targets = (0, utils_1.pickMultipleRandomAlive)(pirates, 3);
|
|
13
13
|
for (const target of targets) {
|
|
14
14
|
target.enchantments.push({
|
|
15
15
|
cardId: 'PowderKegEnchantment',
|