@firestone-hs/simulate-bgs-battle 1.1.700 → 1.1.702
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cards/card.interface.d.ts +2 -6
- package/dist/cards/card.interface.js.map +1 -1
- package/dist/cards/impl/_card-mappings.js +9 -1
- package/dist/cards/impl/_card-mappings.js.map +1 -1
- package/dist/cards/impl/bg-spell/azerite-empowerment.js +1 -2
- package/dist/cards/impl/bg-spell/azerite-empowerment.js.map +1 -1
- package/dist/cards/impl/bg-spell/back-to-back.js +3 -1
- package/dist/cards/impl/bg-spell/back-to-back.js.map +1 -1
- package/dist/cards/impl/bg-spell/conflagration.js +4 -2
- package/dist/cards/impl/bg-spell/conflagration.js.map +1 -1
- package/dist/cards/impl/bg-spell/deepwater-clan.js +3 -2
- package/dist/cards/impl/bg-spell/deepwater-clan.js.map +1 -1
- package/dist/cards/impl/bg-spell/healthy-bounty.js +3 -1
- package/dist/cards/impl/bg-spell/healthy-bounty.js.map +1 -1
- package/dist/cards/impl/bg-spell/hostile-bounty.js +3 -1
- package/dist/cards/impl/bg-spell/hostile-bounty.js.map +1 -1
- package/dist/cards/impl/bg-spell/menagerie-tableware.js +2 -1
- package/dist/cards/impl/bg-spell/menagerie-tableware.js.map +1 -1
- package/dist/cards/impl/bg-spell/might-of-stormwind.js +3 -1
- package/dist/cards/impl/bg-spell/might-of-stormwind.js.map +1 -1
- package/dist/cards/impl/bg-spell/murkys-fish.js +2 -1
- package/dist/cards/impl/bg-spell/murkys-fish.js.map +1 -1
- package/dist/cards/impl/bg-spell/natural-blessing.js +2 -2
- package/dist/cards/impl/bg-spell/natural-blessing.js.map +1 -1
- package/dist/cards/impl/bg-spell/queens-command.js +3 -2
- package/dist/cards/impl/bg-spell/queens-command.js.map +1 -1
- package/dist/cards/impl/bg-spell/selfish-bounty.js +3 -1
- package/dist/cards/impl/bg-spell/selfish-bounty.js.map +1 -1
- package/dist/cards/impl/bg-spell/shifting-tide.js +3 -2
- package/dist/cards/impl/bg-spell/shifting-tide.js.map +1 -1
- package/dist/cards/impl/bg-spell/shiny-ring.js +1 -2
- package/dist/cards/impl/bg-spell/shiny-ring.js.map +1 -1
- package/dist/cards/impl/bg-spell/wave-of-gold.js +3 -2
- package/dist/cards/impl/bg-spell/wave-of-gold.js.map +1 -1
- package/dist/cards/impl/minion/auto-assembler-enchantment.js +6 -1
- package/dist/cards/impl/minion/auto-assembler-enchantment.js.map +1 -1
- package/dist/cards/impl/minion/banana-slamma.js +1 -1
- package/dist/cards/impl/minion/banana-slamma.js.map +1 -1
- package/dist/cards/impl/minion/battlecruiser.js +9 -11
- package/dist/cards/impl/minion/battlecruiser.js.map +1 -1
- package/dist/cards/impl/minion/determined-defender.js +2 -2
- package/dist/cards/impl/minion/determined-defender.js.map +1 -1
- package/dist/cards/impl/minion/diremuck-forager.js +1 -1
- package/dist/cards/impl/minion/diremuck-forager.js.map +1 -1
- package/dist/cards/impl/minion/pufferquil.d.ts +2 -2
- package/dist/cards/impl/minion/pufferquil.js +3 -0
- package/dist/cards/impl/minion/pufferquil.js.map +1 -1
- package/dist/cards/impl/minion/radio-star.js +4 -0
- package/dist/cards/impl/minion/radio-star.js.map +1 -1
- package/dist/cards/impl/minion/ring-bearer.d.ts +2 -2
- package/dist/cards/impl/minion/ring-bearer.js +4 -4
- package/dist/cards/impl/minion/ring-bearer.js.map +1 -1
- package/dist/cards/impl/minion/scallywag.js.map +1 -1
- package/dist/cards/impl/minion/scarlet-survivor.d.ts +2 -2
- package/dist/cards/impl/minion/scarlet-survivor.js +12 -2
- package/dist/cards/impl/minion/scarlet-survivor.js.map +1 -1
- package/dist/cards/impl/minion/skulking-bristlemane.js +1 -1
- package/dist/cards/impl/minion/skulking-bristlemane.js.map +1 -1
- package/dist/cards/impl/minion/timecapn-hooktail.d.ts +2 -0
- package/dist/cards/impl/minion/timecapn-hooktail.js +14 -0
- package/dist/cards/impl/minion/timecapn-hooktail.js.map +1 -0
- package/dist/cards/impl/minion/timewarped-magnanimoose.js +1 -1
- package/dist/cards/impl/minion/timewarped-magnanimoose.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-radio-star.js +2 -1
- package/dist/cards/impl/minion/timewarped-radio-star.js.map +1 -1
- package/dist/cards/impl/trinket/automaton-portrait.d.ts +4 -0
- package/dist/cards/impl/trinket/automaton-portrait.js +12 -6
- package/dist/cards/impl/trinket/automaton-portrait.js.map +1 -1
- package/dist/cards/impl/trinket/fang-anklet.js +2 -17
- package/dist/cards/impl/trinket/fang-anklet.js.map +1 -1
- package/dist/cards/impl/trinket/jar-o-gems.js +1 -1
- package/dist/cards/impl/trinket/jar-o-gems.js.map +1 -1
- package/dist/cards/impl/trinket/mama-bear-sticker.d.ts +2 -0
- package/dist/cards/impl/trinket/mama-bear-sticker.js +18 -0
- package/dist/cards/impl/trinket/mama-bear-sticker.js.map +1 -0
- package/dist/cards/impl/trinket/powder-keg-enchantment.js +5 -5
- package/dist/cards/impl/trinket/powder-keg-enchantment.js.map +1 -1
- package/dist/cards/impl/trinket/powder-keg.js +3 -1
- package/dist/cards/impl/trinket/powder-keg.js.map +1 -1
- package/dist/cards/impl/trinket/slamma-sticker.js +1 -1
- package/dist/cards/impl/trinket/slamma-sticker.js.map +1 -1
- package/dist/mechanics/cast-tavern-spell.js +8 -8
- package/dist/mechanics/cast-tavern-spell.js.map +1 -1
- package/dist/simulation/add-minion-to-board.js +15 -1
- package/dist/simulation/add-minion-to-board.js.map +1 -1
- package/dist/simulation/start-of-combat/soc-action-processor.js +0 -3
- package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
- package/dist/simulation/summon-when-space.js +7 -1
- package/dist/simulation/summon-when-space.js.map +1 -1
- package/dist/utils.d.ts +4 -0
- package/dist/utils.js +15 -1
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azerite-empowerment.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/azerite-empowerment.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAEvD,
|
|
1
|
+
{"version":3,"file":"azerite-empowerment.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/azerite-empowerment.ts"],"names":[],"mappings":";;;AAAA,iEAAuD;AAEvD,0CAA0E;AAG7D,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { GameTag } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const AzeriteEmpowerment: TavernSpellCard = {\r\n\tcardIds: [CardIds.AzeriteEmpowerment_BG28_169],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BackToBack = void 0;
|
|
4
4
|
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
5
6
|
exports.BackToBack = {
|
|
6
7
|
cardIds: ["BG35_952"],
|
|
7
8
|
castTavernSpell: (_spellCardId, input) => {
|
|
@@ -9,10 +10,11 @@ exports.BackToBack = {
|
|
|
9
10
|
const target = (_a = input.target) !== null && _a !== void 0 ? _a : input.board.find((e) => e.health > 0 && !e.definitelyDead);
|
|
10
11
|
if (!target)
|
|
11
12
|
return;
|
|
13
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 4, 4, input.gameState.allCards, input.spellCardId);
|
|
12
14
|
const previousCasts = (_b = input.hero.globalInfo.BackToBackCastThisGame) !== null && _b !== void 0 ? _b : 0;
|
|
13
15
|
const repetitions = 1 + previousCasts;
|
|
14
16
|
for (let i = 0; i < repetitions; i++) {
|
|
15
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
17
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
16
18
|
}
|
|
17
19
|
input.hero.globalInfo.BackToBackCastThisGame = previousCasts + 1;
|
|
18
20
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"back-to-back.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/back-to-back.ts"],"names":[],"mappings":";;;AACA,qDAAwD;
|
|
1
|
+
{"version":3,"file":"back-to-back.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/back-to-back.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,mCAAI,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACrC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,aAAa,GAAG,CAAC,CAAC;IAClE,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const BackToBack: TavernSpellCard = {\r\n\tcardIds: [CardIds.BackToBack_BG35_952],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) return;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t4,\r\n\t\t\t4,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst previousCasts = input.hero.globalInfo.BackToBackCastThisGame ?? 0;\r\n\t\tconst repetitions = 1 + previousCasts;\r\n\t\tfor (let i = 0; i < repetitions; i++) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tinput.hero.globalInfo.BackToBackCastThisGame = previousCasts + 1;\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Conflagration = void 0;
|
|
4
4
|
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
5
6
|
exports.Conflagration = {
|
|
6
7
|
cardIds: ["BG35_910", "BG35_910_G"],
|
|
7
8
|
castTavernSpell: (spellCardId, input) => {
|
|
@@ -12,8 +13,9 @@ exports.Conflagration = {
|
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
const elementalsPlayed = (_b = input.hero.globalInfo.ElementalsPlayedThisTurn) !== null && _b !== void 0 ? _b : 0;
|
|
15
|
-
const
|
|
16
|
-
const
|
|
16
|
+
const baseAttack = (4 + elementalsPlayed) * mult;
|
|
17
|
+
const baseHealth = (4 + elementalsPlayed) * mult;
|
|
18
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, baseAttack, baseHealth, input.gameState.allCards, input.spellCardId);
|
|
17
19
|
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
18
20
|
},
|
|
19
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflagration.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/conflagration.ts"],"names":[],"mappings":";;;AACA,qDAAwD;
|
|
1
|
+
{"version":3,"file":"conflagration.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/conflagration.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,MAAM,gBAAgB,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;QACjD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const Conflagration: TavernSpellCard = {\r\n\tcardIds: [CardIds.Conflagration_BG35_910, CardIds.Conflagration_BG35_910_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.Conflagration_BG35_910_G ? 2 : 1;\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst elementalsPlayed = input.hero.globalInfo.ElementalsPlayedThisTurn ?? 0;\r\n\t\tconst baseAttack = (4 + elementalsPlayed) * mult;\r\n\t\tconst baseHealth = (4 + elementalsPlayed) * mult;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,15 +9,16 @@ exports.DeepwaterClan = {
|
|
|
9
9
|
castTavernSpell: (spellCardId, input) => {
|
|
10
10
|
var _a;
|
|
11
11
|
const mult = spellCardId === "BG35_149_G" ? 2 : 1;
|
|
12
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 2 * mult, 2 * mult, input.gameState.allCards, input.spellCardId);
|
|
12
13
|
const target = (_a = input.target) !== null && _a !== void 0 ? _a : input.board.find((e) => e.health > 0 && !e.definitelyDead);
|
|
13
14
|
if (target) {
|
|
14
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
15
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
15
16
|
}
|
|
16
17
|
for (const entity of input.board) {
|
|
17
18
|
if (entity.health <= 0 || entity.definitelyDead)
|
|
18
19
|
continue;
|
|
19
20
|
if ((0, utils_1.hasCorrectTribe)(entity, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards)) {
|
|
20
|
-
(0, stats_1.modifyStats)(entity, input.source,
|
|
21
|
+
(0, stats_1.modifyStats)(entity, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepwater-clan.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/deepwater-clan.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"deepwater-clan.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/deepwater-clan.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QACD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;YACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc;gBAAE,SAAS;YAC1D,IAAI,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC1G,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC5F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const DeepwaterClan: TavernSpellCard = {\r\n\tcardIds: [CardIds.DeepwaterClan_BG35_149, CardIds.DeepwaterClan_BG35_149_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.DeepwaterClan_BG35_149_G ? 2 : 1;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t2 * mult,\r\n\t\t\t2 * mult,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\tfor (const entity of input.board) {\r\n\t\t\tif (entity.health <= 0 || entity.definitelyDead) continue;\r\n\t\t\tif (hasCorrectTribe(entity, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(entity, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HealthyBounty = void 0;
|
|
4
4
|
const utils_1 = require("../../../services/utils");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const utils_2 = require("../../../utils");
|
|
6
7
|
exports.HealthyBounty = {
|
|
7
8
|
cardIds: ["BG33_811"],
|
|
8
9
|
castTavernSpell: (_spellCardId, input) => {
|
|
10
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 0, 4, input.gameState.allCards, input.spellCardId);
|
|
9
11
|
const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 3);
|
|
10
12
|
for (const target of targets) {
|
|
11
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
13
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
12
14
|
}
|
|
13
15
|
},
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"healthy-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/healthy-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;
|
|
1
|
+
{"version":3,"file":"healthy-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/healthy-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HealthyBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HealthyBounty_BG33_811],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t0,\r\n\t\t\t4,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HostileBounty = void 0;
|
|
4
4
|
const utils_1 = require("../../../services/utils");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const utils_2 = require("../../../utils");
|
|
6
7
|
exports.HostileBounty = {
|
|
7
8
|
cardIds: ["BG33_812"],
|
|
8
9
|
castTavernSpell: (_spellCardId, input) => {
|
|
10
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 4, 0, input.gameState.allCards, input.spellCardId);
|
|
9
11
|
const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 3);
|
|
10
12
|
for (const target of targets) {
|
|
11
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
13
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
12
14
|
}
|
|
13
15
|
},
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostile-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/hostile-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;
|
|
1
|
+
{"version":3,"file":"hostile-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/hostile-bounty.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const HostileBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.HostileBounty_BG33_812],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t4,\r\n\t\t\t0,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 3);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,9 +5,10 @@ const utils_1 = require("../../../utils");
|
|
|
5
5
|
exports.MenagerieTableware = {
|
|
6
6
|
cardIds: ["BG34_272"],
|
|
7
7
|
castTavernSpell: (spellCardId, input) => {
|
|
8
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3, 3, input.gameState.allCards, input.spellCardId);
|
|
8
9
|
const numberOfDifferentTypes = (0, utils_1.getMinionsOfDifferentTypes)(input.board, input.hero, input.gameState).length;
|
|
9
10
|
for (let i = 0; i < numberOfDifferentTypes + 1; i++) {
|
|
10
|
-
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero,
|
|
11
|
+
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
|
|
11
12
|
}
|
|
12
13
|
},
|
|
13
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menagerie-tableware.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/menagerie-tableware.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"menagerie-tableware.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/menagerie-tableware.ts"],"names":[],"mappings":";;;AACA,0CAAsG;AAGzF,QAAA,kBAAkB,GAAoB;IAClD,OAAO,EAAE,YAAqC;IAC9C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAA,kCAA0B,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, getMinionsOfDifferentTypes, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MenagerieTableware: TavernSpellCard = {\r\n\tcardIds: [CardIds.MenagerieTableware_BG34_272],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3,\r\n\t\t\t3,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst numberOfDifferentTypes = getMinionsOfDifferentTypes(input.board, input.hero, input.gameState).length;\r\n\t\tfor (let i = 0; i < numberOfDifferentTypes + 1; i++) {\r\n\t\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MightOfStormwind = void 0;
|
|
4
4
|
const utils_1 = require("../../../services/utils");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
|
+
const utils_2 = require("../../../utils");
|
|
6
7
|
exports.MightOfStormwind = {
|
|
7
8
|
cardIds: ["BG35_951"],
|
|
8
9
|
castTavernSpell: (_spellCardId, input) => {
|
|
10
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 1, 2, input.gameState.allCards, input.spellCardId);
|
|
9
11
|
const targets = (0, utils_1.pickMultipleRandomAlive)(input.board, 4);
|
|
10
12
|
for (const target of targets) {
|
|
11
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
13
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
12
14
|
}
|
|
13
15
|
},
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"might-of-stormwind.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/might-of-stormwind.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;
|
|
1
|
+
{"version":3,"file":"might-of-stormwind.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/might-of-stormwind.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAClE,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,gBAAgB,GAAoB;IAChD,OAAO,EAAE,YAAmC;IAC5C,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MightOfStormwind: TavernSpellCard = {\r\n\tcardIds: [CardIds.MightOfStormwind_BG35_951],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t1,\r\n\t\t\t2,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(input.board, 4);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -11,9 +11,10 @@ exports.MurkysFish = {
|
|
|
11
11
|
const murlocs = input.board.filter((e) => (0, utils_2.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
|
|
12
12
|
const target = (0, utils_1.pickRandom)(murlocs);
|
|
13
13
|
if (!!target) {
|
|
14
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
|
|
14
15
|
const loops = 1 + murlocs.length;
|
|
15
16
|
for (let i = 0; i < loops; i++) {
|
|
16
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
17
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"murkys-fish.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/murkys-fish.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,qDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"murkys-fish.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/murkys-fish.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,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;QACF,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;YACF,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aAC5F;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const MurkysFish: TavernSpellCard = {\r\n\tcardIds: [CardIds.MurkysFish_BG33_898],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst murlocs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = pickRandom(murlocs);\r\n\t\tif (!!target) {\r\n\t\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t1,\r\n\t\t\t\t1,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.spellCardId,\r\n\t\t\t);\r\n\t\t\tconst loops = 1 + murlocs.length;\r\n\t\t\tfor (let i = 0; i < loops; i++) {\r\n\t\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,14 +4,14 @@ exports.NaturalBlessing = void 0;
|
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const utils_1 = require("../../../services/utils");
|
|
6
6
|
const stats_1 = require("../../../simulation/stats");
|
|
7
|
+
const utils_2 = require("../../../utils");
|
|
7
8
|
exports.NaturalBlessing = {
|
|
8
9
|
cardIds: ["BG28_845"],
|
|
9
10
|
castTavernSpell: (spellCardId, input) => {
|
|
10
11
|
var _a, _b, _c, _d;
|
|
11
12
|
const baseAttack = input.gameState.allCards.getCard(spellCardId).tags[reference_data_1.GameTag[reference_data_1.GameTag.TAG_SCRIPT_DATA_NUM_1]];
|
|
12
13
|
const baseHealth = input.gameState.allCards.getCard(spellCardId).tags[reference_data_1.GameTag[reference_data_1.GameTag.TAG_SCRIPT_DATA_NUM_2]];
|
|
13
|
-
const attack = baseAttack
|
|
14
|
-
const health = baseHealth + input.hero.globalInfo.TavernSpellHealthBuff;
|
|
14
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, baseAttack, baseHealth, input.gameState.allCards, input.spellCardId);
|
|
15
15
|
const allMinions = [...input.board, ...input.otherBoard];
|
|
16
16
|
const target = (0, utils_1.pickRandom)(allMinions);
|
|
17
17
|
const minionsSharingType = allMinions.filter((e) => doMinionsShareType(e, target, input.gameState.allCards));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"natural-blessing.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/natural-blessing.ts"],"names":[],"mappings":";;;AAAA,iEAAwE;AAGxE,mDAAqD;AACrD,qDAAwD;
|
|
1
|
+
{"version":3,"file":"natural-blessing.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/natural-blessing.ts"],"names":[],"mappings":";;;AAAA,iEAAwE;AAGxE,mDAAqD;AACrD,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,eAAe,GAAoB;IAC/C,OAAO,EAAE,YAAkC;IAC3C,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,wBAAO,CAAC,wBAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,UAAU,EACV,UAAU,EACV,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7G,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;YACxC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;QAED,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAC/D,CAAC;QACF,IAAI,WAAW,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE;gBAC7C,IAAI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;oBACnE,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;oBAClD,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAA,QAAQ,CAAC,MAAM,mCAAI,CAAC,CAAC,GAAG,MAAM,CAAC;iBAClD;aACD;SACD;IACF,CAAC;CACD,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAE,MAAmB,EAAE,QAAyB,EAAE,EAAE;;IAClG,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC","sourcesContent":["import { AllCardsService, GameTag } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const NaturalBlessing: TavernSpellCard = {\r\n\tcardIds: [CardIds.NaturalBlessing_BG28_845],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst baseAttack = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_1]];\r\n\t\tconst baseHealth = input.gameState.allCards.getCard(spellCardId).tags[GameTag[GameTag.TAG_SCRIPT_DATA_NUM_2]];\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\tbaseAttack,\r\n\t\t\tbaseHealth,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\r\n\t\tconst allMinions = [...input.board, ...input.otherBoard];\r\n\t\tconst target = pickRandom(allMinions);\r\n\t\tconst minionsSharingType = allMinions.filter((e) => doMinionsShareType(e, target, input.gameState.allCards));\r\n\t\tfor (const minion of minionsSharingType) {\r\n\t\t\tmodifyStats(minion, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\r\n\t\tconst hasPortrait = input.hero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.BlessingPortrait_BG32_MagicItem_894,\r\n\t\t);\r\n\t\tif (hasPortrait) {\r\n\t\t\tfor (const handCard of input.hero.hand ?? []) {\r\n\t\t\t\tif (doMinionsShareType(handCard, target, input.gameState.allCards)) {\r\n\t\t\t\t\thandCard.attack = (handCard.attack ?? 0) + attack;\r\n\t\t\t\t\thandCard.health = (handCard.health ?? 0) + health;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst doMinionsShareType = (minion: BoardEntity, target: BoardEntity, allCards: AllCardsService) => {\r\n\tconst minionTypes = allCards.getCard(minion.cardId).races ?? [];\r\n\tconst targetTypes = allCards.getCard(target.cardId).races ?? [];\r\n\treturn minionTypes.some((type) => targetTypes.includes(type));\r\n};\r\n"]}
|
|
@@ -8,13 +8,14 @@ exports.QueensCommand = {
|
|
|
8
8
|
cardIds: ["BG35_922", "BG35_922_G"],
|
|
9
9
|
castTavernSpell: (spellCardId, input) => {
|
|
10
10
|
const mult = spellCardId === "BG35_922_G" ? 2 : 1;
|
|
11
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3 * mult, 3 * mult, input.gameState.allCards, input.spellCardId);
|
|
11
12
|
for (const e of input.board) {
|
|
12
13
|
if (e.health <= 0 || e.definitelyDead) {
|
|
13
14
|
continue;
|
|
14
15
|
}
|
|
15
|
-
(0, stats_1.modifyStats)(e, input.source,
|
|
16
|
+
(0, stats_1.modifyStats)(e, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
16
17
|
if ((0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {
|
|
17
|
-
(0, stats_1.modifyStats)(e, input.source,
|
|
18
|
+
(0, stats_1.modifyStats)(e, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queens-command.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/queens-command.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"queens-command.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/queens-command.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAG7D,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,0BAAkE;IAC3E,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,WAAW,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE;gBACtC,SAAS;aACT;YACD,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACvF,IAAI,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACnG,IAAA,mBAAW,EAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvF;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const QueensCommand: TavernSpellCard = {\r\n\tcardIds: [CardIds.QueensCommand_BG35_922, CardIds.QueensCommand_BG35_922_G],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst mult = spellCardId === CardIds.QueensCommand_BG35_922_G ? 2 : 1;\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3 * mult,\r\n\t\t\t3 * mult,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.health <= 0 || e.definitelyDead) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tmodifyStats(e, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SelfishBounty = void 0;
|
|
4
4
|
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
const utils_1 = require("../../../utils");
|
|
5
6
|
exports.SelfishBounty = {
|
|
6
7
|
cardIds: ["BG33_813"],
|
|
7
8
|
castTavernSpell: (_spellCardId, input) => {
|
|
8
9
|
const target = input.board[0];
|
|
9
10
|
if (target) {
|
|
10
|
-
(0,
|
|
11
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 6, 6, input.gameState.allCards, input.spellCardId);
|
|
12
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
11
13
|
}
|
|
12
14
|
},
|
|
13
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfish-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/selfish-bounty.ts"],"names":[],"mappings":";;;AACA,qDAAwD;
|
|
1
|
+
{"version":3,"file":"selfish-bounty.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/selfish-bounty.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAyD;AAG5C,QAAA,aAAa,GAAoB;IAC7C,OAAO,EAAE,YAAgC;IACzC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,MAAM,EAAE;YACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;YACF,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const SelfishBounty: TavernSpellCard = {\r\n\tcardIds: [CardIds.SelfishBounty_BG33_813],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.board[0];\r\n\t\tif (target) {\r\n\t\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\t\tinput.hero,\r\n\t\t\t\t6,\r\n\t\t\t\t6,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\tinput.spellCardId,\r\n\t\t\t);\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -7,9 +7,10 @@ const utils_1 = require("../../../utils");
|
|
|
7
7
|
const applyShiftingTideToTarget = (target, input) => {
|
|
8
8
|
const isNaga = (0, utils_1.hasCorrectTribe)(target, input.hero, reference_data_1.Race.NAGA, input.gameState.anomalies, input.gameState.allCards);
|
|
9
9
|
const rounds = isNaga ? 2 : 1;
|
|
10
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
|
|
10
11
|
for (let r = 0; r < rounds; r++) {
|
|
11
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
12
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
12
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
13
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
13
14
|
}
|
|
14
15
|
};
|
|
15
16
|
exports.ShiftingTide = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shifting-tide.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shifting-tide.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"shifting-tide.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shifting-tide.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,qDAAwD;AACxD,0CAA0E;AAI1E,MAAM,yBAAyB,GAAG,CAAC,MAA6C,EAAE,KAAqB,EAAQ,EAAE;IAChH,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAChC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5F,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;KAC5F;AACF,CAAC,CAAC;AAEW,QAAA,YAAY,GAAoB;IAC5C,OAAO,EAAE,YAA+B;IACxC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;;QAChE,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE;YACX,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACzC;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\n/** Give a minion +2/+2 twice. If it's a Naga, repeat this (two more +2/+2 applications). */\r\nconst applyShiftingTideToTarget = (target: NonNullable<CastSpellInput['target']>, input: CastSpellInput): void => {\r\n\tconst isNaga = hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards);\r\n\tconst rounds = isNaga ? 2 : 1;\r\n\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\tinput.hero,\r\n\t\t1,\r\n\t\t1,\r\n\t\tinput.gameState.allCards,\r\n\t\tinput.spellCardId,\r\n\t);\r\n\tfor (let r = 0; r < rounds; r++) {\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t}\r\n};\r\n\r\nexport const ShiftingTide: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShiftingTide_BG32_815],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst target = input.target ?? input.board.find((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tif (target) {\r\n\t\t\tapplyShiftingTideToTarget(target, input);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,8 +5,7 @@ const utils_1 = require("../../../utils");
|
|
|
5
5
|
exports.ShinyRing = {
|
|
6
6
|
cardIds: ["BG28_168"],
|
|
7
7
|
castTavernSpell: (spellCardId, input) => {
|
|
8
|
-
const attack = 1
|
|
9
|
-
const health = 1 + input.hero.globalInfo.TavernSpellHealthBuff;
|
|
8
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 1, 1, input.gameState.allCards, input.spellCardId);
|
|
10
9
|
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
|
|
11
10
|
},
|
|
12
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shiny-ring.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shiny-ring.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"shiny-ring.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/shiny-ring.ts"],"names":[],"mappings":";;;AACA,0CAA0E;AAG7D,QAAA,SAAS,GAAoB;IACzC,OAAO,EAAE,YAA4B;IACrC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const ShinyRing: TavernSpellCard = {\r\n\tcardIds: [CardIds.ShinyRing_BG28_168],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t1,\r\n\t\t\t1,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,10 +6,11 @@ const utils_1 = require("../../../utils");
|
|
|
6
6
|
exports.WaveOfGold = {
|
|
7
7
|
cardIds: ["BG34_990"],
|
|
8
8
|
castTavernSpell: (spellCardId, input) => {
|
|
9
|
-
(0, utils_1.
|
|
9
|
+
const { attack, health } = (0, utils_1.withTavernSpellStatBuff)(input.hero, 3, 2, input.gameState.allCards, input.spellCardId);
|
|
10
|
+
(0, utils_1.addStatsToBoard)(input.source, input.board, input.hero, attack, health, input.gameState);
|
|
10
11
|
const goldenMinions = input.board.filter((e) => (0, utils_1.isGolden)(e.cardId, input.gameState.allCards));
|
|
11
12
|
for (const target of goldenMinions) {
|
|
12
|
-
(0, stats_1.modifyStats)(target, input.source,
|
|
13
|
+
(0, stats_1.modifyStats)(target, input.source, attack, health, input.board, input.hero, input.gameState);
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wave-of-gold.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/wave-of-gold.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"wave-of-gold.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/wave-of-gold.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AACxD,0CAAoF;AAGvE,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;QAC/D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,uBAAe,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9F,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;YACnC,IAAA,mBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC5F;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { addStatsToBoard, isGolden, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const WaveOfGold: TavernSpellCard = {\r\n\tcardIds: [CardIds.WaveOfGold_BG34_990],\r\n\tcastTavernSpell: (spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t3,\r\n\t\t\t2,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\taddStatsToBoard(input.source, input.board, input.hero, attack, health, input.gameState);\r\n\t\tconst goldenMinions = input.board.filter((e) => isGolden(e.cardId, input.gameState.allCards));\r\n\t\tfor (const target of goldenMinions) {\r\n\t\t\tmodifyStats(target, input.source, attack, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,10 +8,15 @@ exports.AutoAssemblerEnchantment = {
|
|
|
8
8
|
"BG32_172_Ge",
|
|
9
9
|
],
|
|
10
10
|
deathrattleSpawnEnchantmentEffect: (enchantment, minion, input) => {
|
|
11
|
+
var _a, _b, _c, _d;
|
|
11
12
|
const cardIdToSpawn = enchantment.cardId === "BG32_172_Ge"
|
|
12
13
|
? "BG_TTN_401_G"
|
|
13
14
|
: "BG_TTN_401";
|
|
14
|
-
|
|
15
|
+
const attackPerMinion = enchantment.cardId === "BG32_172_Ge"
|
|
16
|
+
? (_b = (_a = input.gameState.allCards.getCard("BG32_172_G")) === null || _a === void 0 ? void 0 : _a.attack) !== null && _b !== void 0 ? _b : 0
|
|
17
|
+
: (_d = (_c = input.gameState.allCards.getCard("BG32_172")) === null || _c === void 0 ? void 0 : _c.attack) !== null && _d !== void 0 ? _d : 0;
|
|
18
|
+
const loops = Math.floor((enchantment.tagScriptDataNum1 || attackPerMinion) / attackPerMinion);
|
|
19
|
+
return (0, deathrattle_spawns_1.simplifiedSpawnEntities)(cardIdToSpawn, loops, input);
|
|
15
20
|
},
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=auto-assembler-enchantment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-assembler-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/auto-assembler-enchantment.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,wBAAwB,GAAoC;IACxE,OAAO,EAAE;;;KAGR;IACD,iCAAiC,EAAE,CAClC,
|
|
1
|
+
{"version":3,"file":"auto-assembler-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/auto-assembler-enchantment.ts"],"names":[],"mappings":";;;AAGA,+EAAiF;AAGpE,QAAA,wBAAwB,GAAoC;IACxE,OAAO,EAAE;;;KAGR;IACD,iCAAiC,EAAE,CAClC,WAA6B,EAC7B,MAAsC,EACtC,KAAgC,EACP,EAAE;;QAC3B,MAAM,aAAa,GAClB,WAAW,CAAC,MAAM,kBAA+D;YAChF,CAAC;YACD,CAAC,aAAmC,CAAC;QA2EvC,MAAM,eAAe,GACpB,WAAW,CAAC,MAAM,kBAA+D;YAChF,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,cAAkC,0CAAE,MAAM,mCAAI,CAAC;YACjF,CAAC,CAAC,MAAA,MAAA,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,YAAgC,0CAAE,MAAM,mCAAI,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,iBAAiB,IAAI,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;QAC/F,OAAO,IAAA,4CAAuB,EAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;CACD,CAAC","sourcesContent":["import { BoardEnchantment, 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 { DeathrattleSpawnEnchantmentCard } from '../../card.interface';\r\n\r\nexport const AutoAssemblerEnchantment: DeathrattleSpawnEnchantmentCard = {\r\n\tcardIds: [\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172e,\r\n\t\tCardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge,\r\n\t],\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tenchantment: BoardEnchantment,\r\n\t\tminion: BoardEntity | null | undefined,\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t): readonly BoardEntity[] => {\r\n\t\tconst cardIdToSpawn =\r\n\t\t\tenchantment.cardId === CardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge\r\n\t\t\t\t? CardIds.AstralAutomaton_BG_TTN_401_G\r\n\t\t\t\t: CardIds.AstralAutomaton_BG_TTN_401;\r\n\t\t// Not sure at all.\r\n\t\t// This is the enchantment that spawned 2 Automatons:\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=6863 CardID=BG32_172e\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CONTROLLER value=13\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ATTACHED value=6862\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=ENTITY_ID value=6863\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CREATOR value=6862\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1037 value=5\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=CREATOR_DBID value=108432\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=1068 value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=1068 value=0\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=ZONE value=PLAY\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=CREATOR value=3621\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=CREATOR_DBID value=120025\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=TAG_SCRIPT_DATA_NUM_1 value=4\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=TAG_SCRIPT_DATA_NUM_2 value=4\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=3528 value=1\r\n\t\t// D 11:27:06.4270081 GameState.DebugPrintPower() - TAG_CHANGE Entity=6863 tag=COPIED_FROM_ENTITY_ID value=6655\r\n\t\t// This is the enchantment that spawned 4 Automatons:\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=9342 CardID=BG32_172e\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CONTROLLER value=12\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ATTACHED value=9341\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=ENTITY_ID value=9342\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CREATOR value=9341\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1037 value=4\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=CREATOR_DBID value=61930\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=1068 value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=1068 value=0\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=ZONE value=PLAY\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=CREATOR value=3789\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=CREATOR_DBID value=120025\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=TAG_SCRIPT_DATA_NUM_1 value=8\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=TAG_SCRIPT_DATA_NUM_2 value=8\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=3528 value=1\r\n\t\t// D 12:08:39.6751039 GameState.DebugPrintPower() - TAG_CHANGE Entity=9342 tag=COPIED_FROM_ENTITY_ID value=9048\r\n\t\t// This spawns 2 golden:\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - SHOW_ENTITY - Updating Entity=12303 CardID=BG32_172_Ge\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CONTROLLER value=13\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CARDTYPE value=ENCHANTMENT\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ATTACHED value=12299\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ZONE value=SETASIDE\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=ENTITY_ID value=12303\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CREATOR value=12299\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=MAGNETIC value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1037 value=5\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1068 value=0\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=CREATOR_DBID value=130794\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1475 value=3\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=1489 value=120025\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - tag=SPAWN_TIME_COUNT value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=1068 value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=1068 value=0\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=ZONE value=PLAY\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=CREATOR value=9141\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=CREATOR_DBID value=120026\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=TAG_SCRIPT_DATA_NUM_1 value=36\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=TAG_SCRIPT_DATA_NUM_2 value=29\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=3528 value=1\r\n\t\t// D 18:11:51.5528186 GameState.DebugPrintPower() - TAG_CHANGE Entity=12303 tag=COPIED_FROM_ENTITY_ID value=12103\r\n\t\t// So the script 1/2 are probably the total attack of the magnetized Auto Assemblers. If some of them got buffed,\r\n\t\t// we can't get back the base attack of the Auto Assemblers.\r\n\t\t// So this doesn't work, but it's the best approximation I can think of right now.\r\n\t\tconst attackPerMinion =\r\n\t\t\tenchantment.cardId === CardIds.AutoAssembler_AutoAssemblerEnchantment_BG32_172_Ge\r\n\t\t\t\t? input.gameState.allCards.getCard(CardIds.AutoAssembler_BG32_172_G)?.attack ?? 0\r\n\t\t\t\t: input.gameState.allCards.getCard(CardIds.AutoAssembler_BG32_172)?.attack ?? 0;\r\n\t\tconst loops = Math.floor((enchantment.tagScriptDataNum1 || attackPerMinion) / attackPerMinion);\r\n\t\treturn simplifiedSpawnEntities(cardIdToSpawn, loops, input);\r\n\t},\r\n};\r\n"]}
|
|
@@ -16,7 +16,7 @@ exports.BananaSlamma = {
|
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
18
|
const mult = slam.cardId === "BG26_802_G" ? 3 : 2;
|
|
19
|
-
(0, stats_1.setEntityStats)(spawned, spawned.attack * mult,
|
|
19
|
+
(0, stats_1.setEntityStats)(spawned, spawned.attack * mult, 0, board, hero, gameState);
|
|
20
20
|
gameState.spectator.registerPowerTarget(slam, spawned, board, null, null);
|
|
21
21
|
},
|
|
22
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"banana-slamma.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/banana-slamma.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAkC,EAAE,KAAwB,EAAE,EAAE;QACnF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,IAAI,GAAG,MAAqB,CAAC;QACnC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACP;QACD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAuB,EAAE,SAAS,CAAC,CAAC;QAC7F,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity, BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const BananaSlamma: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.BananaSlamma_BG26_802, CardIds.BananaSlamma_BG26_802_G],\r\n\tafterOtherSpawned: (minion: BoardEntity | BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tconst slam = minion as BoardEntity;\r\n\t\tif (!spawned || spawned.entityId === slam.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst mult = slam.cardId === CardIds.BananaSlamma_BG26_802_G ? 3 : 2;\r\n\t\tsetEntityStats(spawned, spawned.attack * mult, 0, board, hero as BgsPlayerEntity, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(slam, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
|
|
@@ -17,17 +17,15 @@ exports.Battlecruiser = {
|
|
|
17
17
|
const aliveEntities = input.opponentBoard.filter((entity) => entity.health > 0 && !entity.definitelyDead);
|
|
18
18
|
const targetEntityId = (_a = (0, utils_1.getRandomMinionWithHighestHealth)(aliveEntities)) === null || _a === void 0 ? void 0 : _a.entityId;
|
|
19
19
|
const cannonDamage = Math.max(...yamatoCannons.map((e) => e.tagScriptDataNum1));
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, minion, cannonDamage, input.playerBoard, input.playerEntity, input.gameState);
|
|
30
|
-
}
|
|
20
|
+
const loops = ((_b = minion.tags) === null || _b === void 0 ? void 0 : _b[reference_data_1.GameTag.BACON_YAMATO_CANNON]) === 1 ? 2 : 1;
|
|
21
|
+
for (let i = 0; i < loops; i++) {
|
|
22
|
+
let target = input.opponentBoard.find((entity) => entity.entityId === targetEntityId);
|
|
23
|
+
if (!target || target.health <= 0 || target.definitelyDead) {
|
|
24
|
+
target = (0, utils_1.getRandomMinionWithHighestHealth)(input.opponentBoard);
|
|
25
|
+
}
|
|
26
|
+
if (!!target) {
|
|
27
|
+
input.gameState.spectator.registerPowerTarget(minion, target, input.opponentBoard, input.playerEntity, input.opponentEntity);
|
|
28
|
+
(0, attack_1.dealDamageToMinion)(target, input.opponentBoard, input.opponentEntity, minion, cannonDamage, input.playerBoard, input.playerEntity, input.gameState);
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
31
|
return {
|