@firestone-hs/simulate-bgs-battle 1.1.741 → 1.1.742
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/impl/_card-mappings.js +4 -0
- package/dist/cards/impl/_card-mappings.js.map +1 -1
- package/dist/cards/impl/bg-spell/mighty-dragonbreath.js +1 -1
- package/dist/cards/impl/bg-spell/mighty-dragonbreath.js.map +1 -1
- package/dist/cards/impl/bg-spell/misplaced-tea-set.js +1 -1
- package/dist/cards/impl/bg-spell/misplaced-tea-set.js.map +1 -1
- package/dist/cards/impl/enchantments/admiration.js +1 -1
- package/dist/cards/impl/enchantments/admiration.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/dustbone-devastator.js +1 -1
- package/dist/cards/impl/minion/dustbone-devastator.js.map +1 -1
- package/dist/cards/impl/minion/eredar-escapist.d.ts +2 -0
- package/dist/cards/impl/minion/eredar-escapist.js +38 -0
- package/dist/cards/impl/minion/eredar-escapist.js.map +1 -0
- package/dist/cards/impl/minion/gentle-djinni.js.map +1 -1
- package/dist/cards/impl/minion/glambot.js +1 -1
- package/dist/cards/impl/minion/glambot.js.map +1 -1
- package/dist/cards/impl/minion/imp-lusionist.js +1 -1
- package/dist/cards/impl/minion/imp-lusionist.js.map +1 -1
- package/dist/cards/impl/minion/mama-mrrglton.js +1 -1
- package/dist/cards/impl/minion/mama-mrrglton.js.map +1 -1
- package/dist/cards/impl/minion/maritime-extortionist.js +7 -4
- package/dist/cards/impl/minion/maritime-extortionist.js.map +1 -1
- package/dist/cards/impl/minion/moat-custodian.js +1 -1
- package/dist/cards/impl/minion/moat-custodian.js.map +1 -1
- package/dist/cards/impl/minion/motley-phalanx.js +1 -1
- package/dist/cards/impl/minion/motley-phalanx.js.map +1 -1
- package/dist/cards/impl/minion/papa-mrrglton.js +1 -1
- package/dist/cards/impl/minion/papa-mrrglton.js.map +1 -1
- package/dist/cards/impl/minion/ravaging-scorpid.js +1 -1
- package/dist/cards/impl/minion/ravaging-scorpid.js.map +1 -1
- package/dist/cards/impl/minion/runic-arcanist.js +1 -1
- package/dist/cards/impl/minion/runic-arcanist.js.map +1 -1
- package/dist/cards/impl/minion/sand-swirler.js +2 -2
- package/dist/cards/impl/minion/sand-swirler.js.map +1 -1
- package/dist/cards/impl/minion/showy-cyclist.js +11 -7
- package/dist/cards/impl/minion/showy-cyclist.js.map +1 -1
- package/dist/cards/impl/minion/tasty-lobster.js +1 -1
- package/dist/cards/impl/minion/tasty-lobster.js.map +1 -1
- package/dist/cards/impl/minion/the-last-one-standing.js +1 -1
- package/dist/cards/impl/minion/the-last-one-standing.js.map +1 -1
- package/dist/cards/impl/minion/tichondrius.js +1 -1
- package/dist/cards/impl/minion/tichondrius.js.map +1 -1
- package/dist/cards/impl/minion/torrential-ruiner.js +3 -2
- package/dist/cards/impl/minion/torrential-ruiner.js.map +1 -1
- package/dist/cards/impl/minion/treasure-parrot.d.ts +2 -0
- package/dist/cards/impl/minion/treasure-parrot.js +24 -0
- package/dist/cards/impl/minion/treasure-parrot.js.map +1 -0
- package/dist/cards/impl/minion/twilight-tidehunter.js +1 -1
- package/dist/cards/impl/minion/twilight-tidehunter.js.map +1 -1
- package/dist/cards/impl/minion/wolf-pup.js +1 -1
- package/dist/cards/impl/minion/wolf-pup.js.map +1 -1
- package/dist/cards/impl/spellcraft/thaumaturgy.js +1 -1
- package/dist/cards/impl/spellcraft/thaumaturgy.js.map +1 -1
- package/dist/cards/impl/trinket/dragon-skull.js +1 -1
- package/dist/cards/impl/trinket/dragon-skull.js.map +1 -1
- package/dist/cards/impl/trinket/mama-bear-sticker.js +1 -1
- package/dist/cards/impl/trinket/mama-bear-sticker.js.map +1 -1
- package/dist/simulation/stats.js +3 -2
- package/dist/simulation/stats.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EredarEscapist = void 0;
|
|
4
|
+
const cast_tavern_spell_1 = require("../../../mechanics/cast-tavern-spell");
|
|
5
|
+
const damageThreshold = 3;
|
|
6
|
+
exports.EredarEscapist = {
|
|
7
|
+
cardIds: ["BG36_733", "BG36_733_G"],
|
|
8
|
+
afterHeroDamaged: (minion, input) => {
|
|
9
|
+
var _a;
|
|
10
|
+
if (input.damage <= 0) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
minion.scriptDataNum1 = ((_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : damageThreshold) - input.damage;
|
|
14
|
+
const casts = minion.cardId === "BG36_733_G" ? 2 : 1;
|
|
15
|
+
const otherHero = input.gameState.gameState.player.player === input.hero
|
|
16
|
+
? input.gameState.gameState.opponent.player
|
|
17
|
+
: input.gameState.gameState.player.player;
|
|
18
|
+
const otherBoard = input.gameState.gameState.player.player === input.hero
|
|
19
|
+
? input.gameState.gameState.opponent.board
|
|
20
|
+
: input.gameState.gameState.player.board;
|
|
21
|
+
while (minion.scriptDataNum1 <= 0) {
|
|
22
|
+
for (let i = 0; i < casts; i++) {
|
|
23
|
+
(0, cast_tavern_spell_1.castTavernSpell)("BG28_168", {
|
|
24
|
+
spellCardId: "BG28_168",
|
|
25
|
+
source: input.hero,
|
|
26
|
+
target: null,
|
|
27
|
+
board: input.board,
|
|
28
|
+
hero: input.hero,
|
|
29
|
+
otherBoard: otherBoard,
|
|
30
|
+
otherHero: otherHero,
|
|
31
|
+
gameState: input.gameState,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
minion.scriptDataNum1 += damageThreshold;
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=eredar-escapist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eredar-escapist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/eredar-escapist.ts"],"names":[],"mappings":";;;AAUA,4EAAuE;AAKvE,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;;QACvE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,OAAO;SACP;QAED,MAAM,CAAC,cAAc,GAAG,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,eAAe,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAClF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,MAAM,UAAU,GACf,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YACrD,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK;YAC1C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,OAAO,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC/B,IAAA,mCAAe,cAA6B;oBAC3C,WAAW,YAA4B;oBACvC,MAAM,EAAE,KAAK,CAAC,IAAI;oBAClB,MAAM,EAAE,IAAI;oBACZ,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,UAAU,EAAE,UAAU;oBACtB,SAAS,EAAE,SAAS;oBACpB,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC1B,CAAC,CAAC;aACH;YACD,MAAM,CAAC,cAAc,IAAI,eAAe,CAAC;SACzC;IACF,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Eredar Escapist (Tier 6, 6/6)\r\n * After your hero takes 3 damage, cast Shiny Ring.\r\n *\r\n * Golden Eredar Escapist (Tier 6, 12/12)\r\n * After your hero takes 3 damage, cast Shiny Ring twice.\r\n *\r\n * Remaining damage lives on `scriptDataNum1` (default 3).\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AfterHeroDamagedInput } from '../../../simulation/damage-to-hero';\r\nimport { AfterHeroDamagedCard } from '../../card.interface';\r\n\r\nconst damageThreshold = 3;\r\n\r\nexport const EredarEscapist: AfterHeroDamagedCard = {\r\n\tcardIds: [CardIds.EredarEscapist_BG36_733, CardIds.EredarEscapist_BG36_733_G],\r\n\tafterHeroDamaged: (minion: BoardEntity, input: AfterHeroDamagedInput) => {\r\n\t\tif (input.damage <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.scriptDataNum1 = (minion.scriptDataNum1 ?? damageThreshold) - input.damage;\r\n\t\tconst casts = minion.cardId === CardIds.EredarEscapist_BG36_733_G ? 2 : 1;\r\n\t\tconst otherHero =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.player\r\n\t\t\t\t: input.gameState.gameState.player.player;\r\n\t\tconst otherBoard =\r\n\t\t\tinput.gameState.gameState.player.player === input.hero\r\n\t\t\t\t? input.gameState.gameState.opponent.board\r\n\t\t\t\t: input.gameState.gameState.player.board;\r\n\t\twhile (minion.scriptDataNum1 <= 0) {\r\n\t\t\tfor (let i = 0; i < casts; i++) {\r\n\t\t\t\tcastTavernSpell(CardIds.ShinyRing_BG28_168, {\r\n\t\t\t\t\tspellCardId: CardIds.ShinyRing_BG28_168,\r\n\t\t\t\t\tsource: input.hero,\r\n\t\t\t\t\ttarget: null,\r\n\t\t\t\t\tboard: input.board,\r\n\t\t\t\t\thero: input.hero,\r\n\t\t\t\t\totherBoard: otherBoard,\r\n\t\t\t\t\totherHero: otherHero,\r\n\t\t\t\t\tgameState: input.gameState,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tminion.scriptDataNum1 += damageThreshold;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gentle-djinni.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/gentle-djinni.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"gentle-djinni.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/gentle-djinni.ts"],"names":[],"mappings":";;;AASA,mDAAqD;AAErD,qEAAmE;AAItD,QAAA,YAAY,GAAyC;IACjE,OAAO,EAAE,8BAAoE;IAC7E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,sBAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACvC,KAAK,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;SACrE;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Gentle Djinni (Tier 6, 5/6)\r\n * Taunt. Battlecry and Deathrattle: Get a random Elemental.\r\n *\r\n * Golden Gentle Djinni (Tier 6, 10/12)\r\n * Taunt. Battlecry and Deathrattle: Get 2 random Elementals.\r\n */\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { BattlecryCard, DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const GentleDjinni: BattlecryCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.GentleDjinni_BGS_121, CardIds.GentleDjinni_TB_BaconUps_165],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.gentleDjinniSpawns));\r\n\t\t}\r\n\t\taddCardsInHand(input.hero, input.board, cards, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst cards = [];\r\n\t\tconst numberOfCards = minion.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\tfor (let i = 0; i < numberOfCards; i++) {\r\n\t\t\tcards.push(pickRandom(input.gameState.cardsData.gentleDjinniSpawns));\r\n\t\t}\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cards, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,7 +4,7 @@ exports.Glambot = void 0;
|
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const magnetize_1 = require("../../../simulation/magnetize");
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
|
-
const satelliteStats =
|
|
7
|
+
const satelliteStats = 4;
|
|
8
8
|
exports.Glambot = {
|
|
9
9
|
cardIds: ["BG36_853", "BG36_853_G"],
|
|
10
10
|
onTavernSpellCast: (entity, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glambot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/glambot.ts"],"names":[],"mappings":";;;AAOA,iEAAmE;AAEnE,6DAAkE;AAClE,0CAAiD;AAIjD,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,OAAO,GAA0B;IAC7C,OAAO,EAAE,0BAAsD;IAC/D,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IACC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAC3B,CAAC,MAAM;YACP,CAAC,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,EACnG;YACD,OAAO;SACP;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAA+B,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM;YAC7B,CAAC;YACD,CAAC,YAA8D,CAAC;QAEjE,MAAM,SAAS,GAAkB;YAChC,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;YACpD,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC,CAAC;QACF,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,CAAC,SAAS,CAAC,EACX,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Glambot (Tier
|
|
1
|
+
{"version":3,"file":"glambot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/glambot.ts"],"names":[],"mappings":";;;AAOA,iEAAmE;AAEnE,6DAAkE;AAClE,0CAAiD;AAIjD,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,OAAO,GAA0B;IAC7C,OAAO,EAAE,0BAAsD;IAC/D,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IACC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAC3B,CAAC,MAAM;YACP,CAAC,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,EACnG;YACD,OAAO;SACP;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAA+B,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM;YAC7B,CAAC;YACD,CAAC,YAA8D,CAAC;QAEjE,MAAM,SAAS,GAAkB;YAChC,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;YACpD,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,cAAc,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC,CAAC;QACF,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,CAAC,SAAS,CAAC,EACX,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Glambot (Tier 4, 4/4)\r\n * Whenever you cast a spell on a Mech, Magnetize a 4/4 Satellite to it.\r\n *\r\n * Golden Glambot (Tier 4, 8/8)\r\n * Whenever you cast a spell on a Mech, Magnetize an 8/8 Satellite to it.\r\n */\r\nimport { Race, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst satelliteStats = 4;\r\n\r\nexport const Glambot: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.Glambot_BG36_853, CardIds.Glambot_BG36_853_G],\r\n\tonTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst target = input.target;\r\n\t\tif (\r\n\t\t\tinput.source !== input.hero ||\r\n\t\t\t!target ||\r\n\t\t\t!hasCorrectTribe(target, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst golden = entity.cardId === CardIds.Glambot_BG36_853_G;\r\n\t\tconst satelliteCardId = golden\r\n\t\t\t? CardIds.MoonsteelJuggernaut_MoonsteelSatelliteToken_BG31_171_Gt\r\n\t\t\t: CardIds.MoonsteelJuggernaut_MoonsteelSatelliteToken_BG31_171t;\r\n\t\t// The stats are part of the card text rather than of the token, so we set them explicitly\r\n\t\tconst satellite: ReferenceCard = {\r\n\t\t\t...input.gameState.allCards.getCard(satelliteCardId),\r\n\t\t\tid: satelliteCardId,\r\n\t\t\tattack: satelliteStats * (golden ? 2 : 1),\r\n\t\t\thealth: satelliteStats * (golden ? 2 : 1),\r\n\t\t};\r\n\t\tmagnetizeToTarget(\r\n\t\t\t[target],\r\n\t\t\tentity,\r\n\t\t\t[satellite],\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.otherBoard,\r\n\t\t\tinput.otherHero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,7 +6,7 @@ exports.ImpLusionist = {
|
|
|
6
6
|
cardIds: ["BG36_731", "BG36_731_G"],
|
|
7
7
|
deathrattleSpawn: (minion, input) => {
|
|
8
8
|
const mult = minion.cardId === "BG36_731_G" ? 2 : 1;
|
|
9
|
-
const cardsToAdd = Array(
|
|
9
|
+
const cardsToAdd = Array(mult).fill("BG36_880");
|
|
10
10
|
(0, cards_in_hand_1.addCardsInHand)(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);
|
|
11
11
|
return [];
|
|
12
12
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imp-lusionist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/imp-lusionist.ts"],"names":[],"mappings":";;;AAQA,qEAAmE;AAKtD,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"imp-lusionist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/imp-lusionist.ts"],"names":[],"mappings":";;;AAQA,qEAAmE;AAKtD,QAAA,YAAY,GAAyB;IACjD,OAAO,EAAE,0BAAgE;IACzE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,YAAoC,CAAC;QACxE,IAAA,8BAAc,EAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,mBAAmB,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Imp-lusionist (Tier 4, 4/2)\r\n * Deathrattle: Get a Methodical Madness.\r\n *\r\n * Golden Imp-lusionist (Tier 4, 8/4)\r\n * Deathrattle: Get 2 copies of Methodical Madness.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nexport const ImpLusionist: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ImpLusionist_BG36_731, CardIds.ImpLusionist_BG36_731_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ImpLusionist_BG36_731_G ? 2 : 1;\r\n\t\tconst cardsToAdd = Array(mult).fill(CardIds.MethodicalMadness_BG36_880);\r\n\t\taddCardsInHand(input.boardWithDeadEntityHero, input.boardWithDeadEntity, cardsToAdd, input.gameState);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -10,7 +10,7 @@ exports.MamaMrrglton = {
|
|
|
10
10
|
var _a;
|
|
11
11
|
const mult = minion.cardId === "BG35_140_G" ? 2 : 1;
|
|
12
12
|
const mrrg = (_a = input.hero.globalInfo.MrrgltonsPlayedThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
13
|
-
const atk =
|
|
13
|
+
const atk = 3 * (1 + mrrg) * mult;
|
|
14
14
|
const candidates = input.board.filter((e) => e != minion &&
|
|
15
15
|
(0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
|
|
16
16
|
for (const e of candidates) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mama-mrrglton.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mama-mrrglton.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,0BAAgE;IACzE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAI,MAAM;YACX,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,CACjG,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC3B,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACzE;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const MamaMrrglton: BattlecryCard = {\r\n\tcardIds: [CardIds.MamaMrrglton_BG35_140, CardIds.MamaMrrglton_BG35_140_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MamaMrrglton_BG35_140_G ? 2 : 1;\r\n\t\tconst mrrg = input.hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\t\tconst atk =
|
|
1
|
+
{"version":3,"file":"mama-mrrglton.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/mama-mrrglton.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,0BAAgE;IACzE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAI,MAAM;YACX,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,CACjG,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC3B,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACzE;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const MamaMrrglton: BattlecryCard = {\r\n\tcardIds: [CardIds.MamaMrrglton_BG35_140, CardIds.MamaMrrglton_BG35_140_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MamaMrrglton_BG35_140_G ? 2 : 1;\r\n\t\tconst mrrg = input.hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\t\tconst atk = 3 * (1 + mrrg) * mult;\r\n\t\tconst candidates = input.board.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te != minion &&\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const e of candidates) {\r\n\t\t\tmodifyStats(e, minion, atk, 0, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\t// input.hero.globalInfo.MrrgltonsPlayedThisGame = mrrg + 1;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MaritimeExtortionist = void 0;
|
|
4
|
+
const statPerGolden = 7;
|
|
4
5
|
exports.MaritimeExtortionist = {
|
|
5
6
|
cardIds: ["BG36_524", "BG36_524_G"],
|
|
6
7
|
onSpawned: (minion, input) => {
|
|
7
8
|
var _a;
|
|
8
9
|
const mult = minion.cardId === "BG36_524_G" ? 2 : 1;
|
|
9
10
|
const n = (_a = input.hero.globalInfo.GoldenMinionsPlayedThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
11
|
+
const buff = n * mult * statPerGolden;
|
|
10
12
|
if (input.applyAttackAuras) {
|
|
11
|
-
minion.attack +=
|
|
13
|
+
minion.attack += buff;
|
|
12
14
|
minion.maxAttack = minion.attack;
|
|
13
15
|
}
|
|
14
16
|
if (input.applyHealthAuras) {
|
|
15
|
-
minion.health +=
|
|
17
|
+
minion.health += buff;
|
|
16
18
|
minion.maxHealth = Math.max(minion.maxHealth, minion.health);
|
|
17
19
|
}
|
|
18
20
|
},
|
|
@@ -20,13 +22,14 @@ exports.MaritimeExtortionist = {
|
|
|
20
22
|
var _a;
|
|
21
23
|
const mult = minion.cardId === "BG36_524_G" ? 2 : 1;
|
|
22
24
|
const n = (_a = input.hero.globalInfo.GoldenMinionsPlayedThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
25
|
+
const buff = n * mult * statPerGolden;
|
|
23
26
|
if (input.applyAttackAuras) {
|
|
24
|
-
minion.attack = Math.max(0, minion.attack -
|
|
27
|
+
minion.attack = Math.max(0, minion.attack - buff);
|
|
25
28
|
minion.maxAttack = Math.max(minion.maxAttack, minion.attack);
|
|
26
29
|
}
|
|
27
30
|
if (input.applyHealthAuras) {
|
|
28
31
|
const minHealth = Math.min(minion.health, 1);
|
|
29
|
-
minion.health = Math.max(minHealth, minion.health -
|
|
32
|
+
minion.health = Math.max(minHealth, minion.health - buff);
|
|
30
33
|
minion.maxHealth = Math.max(minion.maxHealth, minion.health);
|
|
31
34
|
}
|
|
32
35
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maritime-extortionist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/maritime-extortionist.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"maritime-extortionist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/maritime-extortionist.ts"],"names":[],"mappings":";;;AAYA,MAAM,aAAa,GAAG,CAAC,CAAC;AAEX,QAAA,oBAAoB,GAAoC;IACpE,OAAO,EAAE,0BAAgF;IACzF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAmB,EAAE,EAAE;;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,mCAAI,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC;QACtC,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;SACjC;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7D;IACF,CAAC;IACD,WAAW,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,mCAAI,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC;QACtC,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7D;QACD,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAC7D;IACF,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Maritime Extortionist (7/7)\r\n * Has +7/+7 for each Golden minion you've played this game (wherever this is).\r\n *\r\n * Golden Maritime Extortionist (14/14)\r\n * Has +14/+14 for each Golden minion you've played this game (wherever this is).\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnDespawnInput, OnSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { OnDespawnedCard, OnSpawnedCard } from '../../card.interface';\r\n\r\nconst statPerGolden = 7;\r\n\r\nexport const MaritimeExtortionist: OnDespawnedCard & OnSpawnedCard = {\r\n\tcardIds: [CardIds.MaritimeExtortionist_BG36_524, CardIds.MaritimeExtortionist_BG36_524_G],\r\n\tonSpawned: (minion: BoardEntity, input: OnSpawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MaritimeExtortionist_BG36_524_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.GoldenMinionsPlayedThisGame ?? 0;\r\n\t\tconst buff = n * mult * statPerGolden;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack += buff;\r\n\t\t\tminion.maxAttack = minion.attack;\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tminion.health += buff;\r\n\t\t\tminion.maxHealth = Math.max(minion.maxHealth, minion.health);\r\n\t\t}\r\n\t},\r\n\tonDespawned: (minion: BoardEntity, input: OnDespawnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MaritimeExtortionist_BG36_524_G ? 2 : 1;\r\n\t\tconst n = input.hero.globalInfo.GoldenMinionsPlayedThisGame ?? 0;\r\n\t\tconst buff = n * mult * statPerGolden;\r\n\t\tif (input.applyAttackAuras) {\r\n\t\t\tminion.attack = Math.max(0, minion.attack - buff);\r\n\t\t\tminion.maxAttack = Math.max(minion.maxAttack, minion.attack);\r\n\t\t}\r\n\t\tif (input.applyHealthAuras) {\r\n\t\t\tconst minHealth = Math.min(minion.health, 1);\r\n\t\t\tminion.health = Math.max(minHealth, minion.health - buff);\r\n\t\t\tminion.maxHealth = Math.max(minion.maxHealth, minion.health);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MoatCustodian = void 0;
|
|
4
4
|
const global_info_helpers_1 = require("../../../simulation/global-info-helpers");
|
|
5
|
-
const attackBuff =
|
|
5
|
+
const attackBuff = 2;
|
|
6
6
|
const healthBuff = 2;
|
|
7
7
|
exports.MoatCustodian = {
|
|
8
8
|
cardIds: ["BG36_351", "BG36_351_G"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moat-custodian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/moat-custodian.ts"],"names":[],"mappings":";;;AASA,iFAAmF;AAInF,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,aAAa,GAAc;IACvC,OAAO,EAAE,0BAAkE;IAC3E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,8CAAwB,EACvB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Moat Custodian (Tier 6,
|
|
1
|
+
{"version":3,"file":"moat-custodian.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/moat-custodian.ts"],"names":[],"mappings":";;;AASA,iFAAmF;AAInF,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,aAAa,GAAc;IACvC,OAAO,EAAE,0BAAkE;IAC3E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,8CAAwB,EACvB,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,UAAU,GAAG,IAAI,EACjB,UAAU,GAAG,IAAI,EACjB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Moat Custodian (Tier 6, 5/10)\r\n * Rally: Your Elementals give an extra +2/+2 this game.\r\n *\r\n * Golden Moat Custodian (Tier 6, 10/20)\r\n * Rally: Your Elementals give an extra +4/+4 this game.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { updateElementalStatsBuff } from '../../../simulation/global-info-helpers';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nconst attackBuff = 2;\r\nconst healthBuff = 2;\r\n\r\nexport const MoatCustodian: RallyCard = {\r\n\tcardIds: [CardIds.MoatCustodian_BG36_351, CardIds.MoatCustodian_BG36_351_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MoatCustodian_BG36_351_G ? 2 : 1;\r\n\t\tupdateElementalStatsBuff(\r\n\t\t\tminion,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\tattackBuff * mult,\r\n\t\t\thealthBuff * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MotleyPhalanx = void 0;
|
|
4
4
|
const utils_1 = require("../../../utils");
|
|
5
|
-
const buff =
|
|
5
|
+
const buff = 3;
|
|
6
6
|
exports.MotleyPhalanx = {
|
|
7
7
|
cardIds: ["BG27_080", "BG27_080_G"],
|
|
8
8
|
deathrattleEffect: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motley-phalanx.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/motley-phalanx.ts"],"names":[],"mappings":";;;AAOA,0CAA+D;AAG/D,MAAM,IAAI,GAAG,CAAC,CAAC;AAEF,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,0BAAkE;IAC3E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,IAAI,EACX,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Motley Phalanx\r\n * Taunt. Deathrattle: Give a friendly minion of each type +
|
|
1
|
+
{"version":3,"file":"motley-phalanx.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/motley-phalanx.ts"],"names":[],"mappings":";;;AAOA,0CAA+D;AAG/D,MAAM,IAAI,GAAG,CAAC,CAAC;AAEF,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,0BAAkE;IAC3E,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,IAAI,EACX,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Motley Phalanx\r\n * Taunt. Deathrattle: Give a friendly minion of each type +3/+3 permanently.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst buff = 3;\r\n\r\nexport const MotleyPhalanx: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.MotleyPhalanx_BG27_080, CardIds.MotleyPhalanx_BG27_080_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.MotleyPhalanx_BG27_080_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tbuff * mult,\r\n\t\t\tbuff * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -10,7 +10,7 @@ exports.PapaMrrglton = {
|
|
|
10
10
|
var _a;
|
|
11
11
|
const mult = minion.cardId === "BG35_141_G" ? 2 : 1;
|
|
12
12
|
const mrrg = (_a = input.hero.globalInfo.MrrgltonsPlayedThisGame) !== null && _a !== void 0 ? _a : 0;
|
|
13
|
-
const hp =
|
|
13
|
+
const hp = 3 * (1 + mrrg) * mult;
|
|
14
14
|
const candidates = input.board.filter((e) => e != minion &&
|
|
15
15
|
(0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
|
|
16
16
|
for (const e of candidates) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"papa-mrrglton.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/papa-mrrglton.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,0BAAgE;IACzE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAI,MAAM;YACX,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,CACjG,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC3B,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxE;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const PapaMrrglton: BattlecryCard = {\r\n\tcardIds: [CardIds.PapaMrrglton_BG35_141, CardIds.PapaMrrglton_BG35_141_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.PapaMrrglton_BG35_141_G ? 2 : 1;\r\n\t\tconst mrrg = input.hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\t\tconst hp =
|
|
1
|
+
{"version":3,"file":"papa-mrrglton.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/papa-mrrglton.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,YAAY,GAAkB;IAC1C,OAAO,EAAE,0BAAgE;IACzE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAI,MAAM;YACX,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,CACjG,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC3B,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACxE;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const PapaMrrglton: BattlecryCard = {\r\n\tcardIds: [CardIds.PapaMrrglton_BG35_141, CardIds.PapaMrrglton_BG35_141_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.PapaMrrglton_BG35_141_G ? 2 : 1;\r\n\t\tconst mrrg = input.hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\t\tconst hp = 3 * (1 + mrrg) * mult;\r\n\t\tconst candidates = input.board.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te != minion &&\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MURLOC, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tfor (const e of candidates) {\r\n\t\t\tmodifyStats(e, minion, 0, hp, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\t// input.hero.globalInfo.MrrgltonsPlayedThisGame = mrrg + 1;\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RavagingScorpid = void 0;
|
|
4
4
|
const deathrattle_spawns_1 = require("../../../simulation/deathrattle-spawns");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
|
-
const beetleBuff =
|
|
6
|
+
const beetleBuff = 5;
|
|
7
7
|
exports.RavagingScorpid = {
|
|
8
8
|
cardIds: ["BG36_209", "BG36_209_G"],
|
|
9
9
|
afterAnotherMinionAttacks: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ravaging-scorpid.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ravaging-scorpid.ts"],"names":[],"mappings":";;;AAUA,+EAAiF;AAEjF,qDAAwD;AAGxD,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,eAAe,GAAqE;IAChG,OAAO,EAAE,0BAAsE;IAC/E,yBAAyB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACxE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,IAAA,4CAAuB,eAA8C,cAAc,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;CACD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACxD,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACxD,KAAK,CAAC,cAAc;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,4BAAyE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CACvG;SACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["/**\r\n * Ravaging Scorpid (Tier 6, 7
|
|
1
|
+
{"version":3,"file":"ravaging-scorpid.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/ravaging-scorpid.ts"],"names":[],"mappings":";;;AAUA,+EAAiF;AAEjF,qDAAwD;AAGxD,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,eAAe,GAAqE;IAChG,OAAO,EAAE,0BAAsE;IAC/E,yBAAyB,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACxE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;IACD,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;QAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,IAAA,4CAAuB,eAA8C,cAAc,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC;CACD,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACxD,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACxD,KAAK,CAAC,cAAc;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,4BAAyE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAiB,CAAC,CACvG;SACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["/**\r\n * Ravaging Scorpid (Tier 6, 6/7)\r\n * After a friendly minion attacks, your Beetles have +5/+5 this game. Deathrattle: Summon a 2/2 Beetle.\r\n *\r\n * Golden Ravaging Scorpid (Tier 6, 12/14)\r\n * After a friendly minion attacks, your Beetles have +10/+10 this game. Deathrattle: Summon two 2/2 Beetles.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { simplifiedSpawnEntities } from '../../../simulation/deathrattle-spawns';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterAnotherMinionAttacksCard, DeathrattleSpawnCard, RallyCard } from '../../card.interface';\r\n\r\nconst beetleBuff = 5;\r\n\r\nexport const RavagingScorpid: AfterAnotherMinionAttacksCard & RallyCard & DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.RavagingScorpid_BG36_209, CardIds.RavagingScorpid_BG36_209_G],\r\n\tafterAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tdoStuff(minion, input);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tdoStuff(minion, input);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst numberOfSpawns = minion.cardId === CardIds.RavagingScorpid_BG36_209_G ? 2 : 1;\r\n\t\treturn simplifiedSpawnEntities(CardIds.BoonOfBeetles_BeetleToken_BG28_603t, numberOfSpawns, input);\r\n\t},\r\n};\r\n\r\nconst doStuff = (minion: BoardEntity, input: OnAttackInput) => {\r\n\tconst mult = minion.cardId === CardIds.RavagingScorpid_BG36_209_G ? 2 : 1;\r\n\tconst buff = beetleBuff * mult;\r\n\tinput.attackingHero.globalInfo.BeetleAttackBuff += buff;\r\n\tinput.attackingHero.globalInfo.BeetleHealthBuff += buff;\r\n\tinput.attackingBoard\r\n\t\t.filter((e) =>\r\n\t\t\t[CardIds.BoonOfBeetles_BeetleToken_BG28_603t, CardIds.Beetle_BG28_603t_G].includes(e.cardId as CardIds),\r\n\t\t)\r\n\t\t.forEach((e) => {\r\n\t\t\tmodifyStats(e, minion, buff, buff, input.attackingBoard, input.attackingHero, input.gameState);\r\n\t\t});\r\n};\r\n"]}
|
|
@@ -5,7 +5,7 @@ const cast_tavern_spell_1 = require("../../../mechanics/cast-tavern-spell");
|
|
|
5
5
|
exports.RunicArcanist = {
|
|
6
6
|
cardIds: ["BG36_245", "BG36_245_G"],
|
|
7
7
|
startOfCombat: (minion, input) => {
|
|
8
|
-
const mult = minion.cardId === "BG36_245_G" ?
|
|
8
|
+
const mult = minion.cardId === "BG36_245_G" ? 4 : 2;
|
|
9
9
|
for (let i = 0; i < mult; i++) {
|
|
10
10
|
(0, cast_tavern_spell_1.castTavernSpell)("BG28_168", {
|
|
11
11
|
spellCardId: "BG28_168",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runic-arcanist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/runic-arcanist.ts"],"names":[],"mappings":";;;AAQA,4EAAuE;AAK1D,QAAA,aAAa,GAAsB;IAC/C,OAAO,EAAE,0BAAkE;IAC3E,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,mCAAe,cAA6B;gBAC3C,WAAW,YAA4B;gBACvC,MAAM,EAAE,KAAK,CAAC,YAAY;gBAC1B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK,CAAC,WAAW;gBACxB,IAAI,EAAE,KAAK,CAAC,YAAY;gBACxB,UAAU,EAAE,KAAK,CAAC,aAAa;gBAC/B,SAAS,EAAE,KAAK,CAAC,cAAc;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;aAC1B,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Runic Arcanist (Tier 4,
|
|
1
|
+
{"version":3,"file":"runic-arcanist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/runic-arcanist.ts"],"names":[],"mappings":";;;AAQA,4EAAuE;AAK1D,QAAA,aAAa,GAAsB;IAC/C,OAAO,EAAE,0BAAkE;IAC3E,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAA,mCAAe,cAA6B;gBAC3C,WAAW,YAA4B;gBACvC,MAAM,EAAE,KAAK,CAAC,YAAY;gBAC1B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK,CAAC,WAAW;gBACxB,IAAI,EAAE,KAAK,CAAC,YAAY;gBACxB,UAAU,EAAE,KAAK,CAAC,aAAa;gBAC/B,SAAS,EAAE,KAAK,CAAC,cAAc;gBAC/B,SAAS,EAAE,KAAK,CAAC,SAAS;aAC1B,CAAC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Runic Arcanist (Tier 4, 2/4)\r\n * Start of Combat: Cast Shiny Ring twice.\r\n *\r\n * Golden Runic Arcanist (Tier 4, 4/8)\r\n * Start of Combat: Cast Shiny Ring four times.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const RunicArcanist: StartOfCombatCard = {\r\n\tcardIds: [CardIds.RunicArcanist_BG36_245, CardIds.RunicArcanist_BG36_245_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RunicArcanist_BG36_245_G ? 4 : 2;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tcastTavernSpell(CardIds.ShinyRing_BG28_168, {\r\n\t\t\t\tspellCardId: CardIds.ShinyRing_BG28_168,\r\n\t\t\t\tsource: input.playerEntity,\r\n\t\t\t\ttarget: null,\r\n\t\t\t\tboard: input.playerBoard,\r\n\t\t\t\thero: input.playerEntity,\r\n\t\t\t\totherBoard: input.opponentBoard,\r\n\t\t\t\totherHero: input.opponentEntity,\r\n\t\t\t\tgameState: input.gameState,\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,8 +5,8 @@ const global_info_helpers_1 = require("../../../simulation/global-info-helpers")
|
|
|
5
5
|
exports.SandSwirler = {
|
|
6
6
|
cardIds: ["BG32_841", "BG32_841_G"],
|
|
7
7
|
battlecry: (minion, input) => {
|
|
8
|
-
const mult = minion.cardId === "
|
|
9
|
-
(0, global_info_helpers_1.updateElementalStatsBuff)(minion, input.board, input.hero,
|
|
8
|
+
const mult = minion.cardId === "BG32_841_G" ? 2 : 1;
|
|
9
|
+
(0, global_info_helpers_1.updateElementalStatsBuff)(minion, input.board, input.hero, 2 * mult, 0, input.gameState);
|
|
10
10
|
return true;
|
|
11
11
|
},
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sand-swirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sand-swirler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sand-swirler.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/sand-swirler.ts"],"names":[],"mappings":";;;AAUA,iFAAmF;AAGtE,QAAA,WAAW,GAAkB;IACzC,OAAO,EAAE,0BAA8D;IACvE,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAW,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAA,8CAAwB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Sand Swirler\r\n * Battlecry: Your Elementals give an extra +2 Attack this game.\r\n *\r\n * Golden Sand Swirler\r\n * Battlecry: Your Elementals give an extra +4 Attack this game.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { updateElementalStatsBuff } from '../../../simulation/global-info-helpers';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const SandSwirler: BattlecryCard = {\r\n\tcardIds: [CardIds.SandSwirler_BG32_841, CardIds.SandSwirler_BG32_841_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput): boolean => {\r\n\t\tconst mult = minion.cardId === CardIds.SandSwirler_BG32_841_G ? 2 : 1;\r\n\t\tupdateElementalStatsBuff(minion, input.board, input.hero, 2 * mult, 0, input.gameState);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,14 +5,18 @@ const reference_data_1 = require("@firestone-hs/reference-data");
|
|
|
5
5
|
const utils_1 = require("../../../utils");
|
|
6
6
|
exports.ShowyCyclist = {
|
|
7
7
|
cardIds: ["BG31_925", "BG31_925_G"],
|
|
8
|
-
rebornSelfAttributeTransfer: ['scriptDataNum2'],
|
|
8
|
+
rebornSelfAttributeTransfer: ['scriptDataNum1', 'scriptDataNum2'],
|
|
9
9
|
deathrattleSpawn: (minion, input) => {
|
|
10
|
-
var _a;
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
10
|
+
var _a, _b, _c;
|
|
11
|
+
const golden = minion.cardId === "BG31_925_G";
|
|
12
|
+
const defaultAtk = golden ? 4 : 2;
|
|
13
|
+
const defaultHp = golden ? 2 : 1;
|
|
14
|
+
const hasSplitAtk = Number.isFinite(minion.scriptDataNum1);
|
|
15
|
+
const atk = hasSplitAtk ? minion.scriptDataNum1 : ((_a = minion.scriptDataNum2) !== null && _a !== void 0 ? _a : defaultAtk);
|
|
16
|
+
const hp = hasSplitAtk
|
|
17
|
+
? ((_b = minion.scriptDataNum2) !== null && _b !== void 0 ? _b : defaultHp)
|
|
18
|
+
: Math.max(defaultHp, Math.floor(((_c = minion.scriptDataNum2) !== null && _c !== void 0 ? _c : defaultAtk) / 2));
|
|
19
|
+
(0, utils_1.addStatsToBoard)(minion, input.boardWithDeadEntity, input.boardWithDeadEntityHero, atk, hp, input.gameState, reference_data_1.Race[reference_data_1.Race.NAGA]);
|
|
16
20
|
return [];
|
|
17
21
|
},
|
|
18
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showy-cyclist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/showy-cyclist.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"showy-cyclist.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/showy-cyclist.ts"],"names":[],"mappings":";;;AAWA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,YAAY,GAA2D;IACnF,OAAO,EAAE,0BAAgE;IAEzE,2BAA2B,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACjE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAE,MAAM,CAAC,cAAyB,CAAC,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,UAAU,CAAC,CAAC;QACpG,MAAM,EAAE,GAAG,WAAW;YACrB,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,SAAS,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,GAAG,EACH,EAAE,EACF,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CACf,CAAC;QACF,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Showy Cyclist\r\n * Deathrattle: Give all your Naga +2/+1. (Improved by every 3 spells you've cast this game!)\r\n *\r\n * Golden Showy Cyclist\r\n * Deathrattle: Give all your Naga +4/+2. (Improved by every 3 spells you've cast this game!)\r\n *\r\n * Current buff is usually on `scriptDataNum1` (attack) and `scriptDataNum2` (health).\r\n * If the client still sends a single combined value in `scriptDataNum2`, that is treated as\r\n * attack and health is half of it.\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 { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { DeathrattleSpawnCard, RebornSelfAttributeTransferCard } from '../../card.interface';\r\n\r\nexport const ShowyCyclist: DeathrattleSpawnCard & RebornSelfAttributeTransferCard = {\r\n\tcardIds: [CardIds.ShowyCyclist_BG31_925, CardIds.ShowyCyclist_BG31_925_G],\r\n\t// https://replays.firestoneapp.com/?reviewId=58840660-bc38-41f3-8aee-9986e145c1aa&turn=23&action=14\r\n\trebornSelfAttributeTransfer: ['scriptDataNum1', 'scriptDataNum2'],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst golden = minion.cardId === CardIds.ShowyCyclist_BG31_925_G;\r\n\t\tconst defaultAtk = golden ? 4 : 2;\r\n\t\tconst defaultHp = golden ? 2 : 1;\r\n\t\tconst hasSplitAtk = Number.isFinite(minion.scriptDataNum1);\r\n\t\tconst atk = hasSplitAtk ? (minion.scriptDataNum1 as number) : (minion.scriptDataNum2 ?? defaultAtk);\r\n\t\tconst hp = hasSplitAtk\r\n\t\t\t? (minion.scriptDataNum2 ?? defaultHp)\r\n\t\t\t: Math.max(defaultHp, Math.floor((minion.scriptDataNum2 ?? defaultAtk) / 2));\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.boardWithDeadEntity,\r\n\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\tatk,\r\n\t\t\thp,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.NAGA],\r\n\t\t);\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,7 +5,7 @@ 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
7
|
const utils_2 = require("../../../utils");
|
|
8
|
-
const numberOfTargets =
|
|
8
|
+
const numberOfTargets = 1;
|
|
9
9
|
exports.TastyLobster = {
|
|
10
10
|
cardIds: ["BG36_202", "BG36_202_G"],
|
|
11
11
|
deathrattleEffect: (minion, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;QAClF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB;YACzD,IAAI,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n *
|
|
1
|
+
{"version":3,"file":"tasty-lobster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tasty-lobster.ts"],"names":[],"mappings":";;;AAQA,iEAAoD;AAGpD,mDAAkE;AAElE,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,eAAe,GAAG,CAAC,CAAC;AAEb,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAGvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC,CAAC,CAAC;QAClG,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACD,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;QAClF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB;YACzD,IAAI,CAAC,GAAG,CAAC,MAAA,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tasty Lobster (Tier 3, 1/1)\r\n * Deathrattle: Give a random friendly Beast +1/+1. Improve your future Tasty Lobsters.\r\n *\r\n * Golden Tasty Lobster (Tier 3, 2/2)\r\n * Deathrattle: Give a random friendly Beast +2/+2. Improve your future Tasty Lobsters.\r\n *\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 { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleEffectCard } from '../../card.interface';\r\n\r\nconst numberOfTargets = 1;\r\n\r\nexport const TastyLobster: DeathrattleEffectCard = {\r\n\tcardIds: [CardIds.TastyLobster_BG36_202, CardIds.TastyLobster_BG36_202_G],\r\n\tdeathrattleEffect: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst base = minion.cardId === CardIds.TastyLobster_BG36_202_G ? 2 : 1;\r\n\t\t// Don't use a fallback to the scriptDataNum1, as it's too cumbersome to manage\r\n\t\t// If for some reason the globalInfo is not set, understand why!\r\n\t\tconst atkBuff = base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst healthBuff = base * (1 + (input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0));\r\n\t\tconst candidates = input.boardWithDeadEntity.filter((e) =>\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\te,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tRace.BEAST,\r\n\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t),\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandomAlive(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\tminion,\r\n\t\t\t\tatkBuff,\r\n\t\t\t\thealthBuff,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst priorBuff = input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff =\r\n\t\t\tMath.max(input.boardWithDeadEntityHero.globalInfo.TastyLobstersBuff ?? 0, priorBuff) + 1;\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,7 +6,7 @@ exports.TheLastOneStanding = {
|
|
|
6
6
|
cardIds: ["BG34_320", "BG34_320_G"],
|
|
7
7
|
rally: (minion, input) => {
|
|
8
8
|
const mult = minion.cardId === "BG34_320_G" ? 2 : 1;
|
|
9
|
-
(0, utils_1.grantStatsToMinionsOfEachType)(minion, input.attackingBoard, input.attackingHero,
|
|
9
|
+
(0, utils_1.grantStatsToMinionsOfEachType)(minion, input.attackingBoard, input.attackingHero, 15 * mult, 15 * mult, input.gameState);
|
|
10
10
|
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
11
11
|
},
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"the-last-one-standing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/the-last-one-standing.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"the-last-one-standing.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/the-last-one-standing.ts"],"names":[],"mappings":";;;AAUA,0CAA+D;AAGlD,QAAA,kBAAkB,GAAc;IAC5C,OAAO,EAAE,0BAA4E;IACrF,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,EAAE,GAAG,IAAI,EACT,EAAE,GAAG,IAAI,EACT,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * The Last One Standing\r\n * Rally: Give a friendly minion of each type +15/+15 permanently.\r\n *\r\n * Golden The Last One Standing\r\n * Rally: Give a friendly minion of each type +30/+30 permanently.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const TheLastOneStanding: RallyCard = {\r\n\tcardIds: [CardIds.TheLastOneStanding_BG34_320, CardIds.TheLastOneStanding_BG34_320_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TheLastOneStanding_BG34_320_G ? 2 : 1;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tminion,\r\n\t\t\tinput.attackingBoard,\r\n\t\t\tinput.attackingHero,\r\n\t\t\t15 * mult,\r\n\t\t\t15 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -7,7 +7,7 @@ exports.Tichondrius = {
|
|
|
7
7
|
cardIds: ["BG26_523", "BG26_523_G"],
|
|
8
8
|
afterHeroDamaged: (minion, input) => {
|
|
9
9
|
const mult = minion.cardId === "BG26_523_G" ? 2 : 1;
|
|
10
|
-
(0, utils_1.addStatsToBoard)(minion, input.board, input.hero, 3 * mult,
|
|
10
|
+
(0, utils_1.addStatsToBoard)(minion, input.board, input.hero, 3 * mult, 3 * mult, input.gameState, reference_data_1.Race[reference_data_1.Race.DEMON]);
|
|
11
11
|
},
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=tichondrius.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tichondrius.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tichondrius.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,WAAW,GAAyB;IAChD,OAAO,EAAE,0BAA8D;IACvE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tichondrius (Tier 5, 3/
|
|
1
|
+
{"version":3,"file":"tichondrius.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/tichondrius.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,WAAW,GAAyB;IAChD,OAAO,EAAE,0BAA8D;IACvE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAA,uBAAe,EACd,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,SAAS,EACf,qBAAI,CAAC,qBAAI,CAAC,KAAK,CAAC,CAChB,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Tichondrius (Tier 5, 3/3)\r\n * After your hero takes damage, give your Demons +3/+3.\r\n *\r\n * Golden Tichondrius (Tier 5, 6/6)\r\n * After your hero takes damage, give your Demons +6/+6.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { AfterHeroDamagedInput } from '../../../simulation/damage-to-hero';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AfterHeroDamagedCard } from '../../card.interface';\r\n\r\nexport const Tichondrius: AfterHeroDamagedCard = {\r\n\tcardIds: [CardIds.Tichondrius_BG26_523, CardIds.Tichondrius_BG26_523_G],\r\n\tafterHeroDamaged: (minion: BoardEntity, input: AfterHeroDamagedInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.Tichondrius_BG26_523_G ? 2 : 1;\r\n\t\taddStatsToBoard(\r\n\t\t\tminion,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\t3 * mult,\r\n\t\t\t3 * mult,\r\n\t\t\tinput.gameState,\r\n\t\t\tRace[Race.DEMON],\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TorrentialRuiner = void 0;
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const utils_1 = require("../../../utils");
|
|
6
|
-
const
|
|
6
|
+
const attackBuff = 2;
|
|
7
|
+
const healthBuff = 3;
|
|
7
8
|
exports.TorrentialRuiner = {
|
|
8
9
|
cardIds: ["BG36_622", "BG36_622_G"],
|
|
9
10
|
onTavernSpellCast: (entity, input) => {
|
|
@@ -14,7 +15,7 @@ exports.TorrentialRuiner = {
|
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
17
|
const mult = entity.cardId === "BG36_622_G" ? 2 : 1;
|
|
17
|
-
(0, utils_1.addStatsToBoard)(entity, input.board, input.hero,
|
|
18
|
+
(0, utils_1.addStatsToBoard)(entity, input.board, input.hero, attackBuff * mult, healthBuff * mult, input.gameState);
|
|
18
19
|
},
|
|
19
20
|
};
|
|
20
21
|
//# sourceMappingURL=torrential-ruiner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"torrential-ruiner.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/torrential-ruiner.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAEpD,0CAAkE;AAIlE,MAAM,
|
|
1
|
+
{"version":3,"file":"torrential-ruiner.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/torrential-ruiner.ts"],"names":[],"mappings":";;;AAOA,iEAAoD;AAEpD,0CAAkE;AAIlE,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,CAAC,CAAC;AAER,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IACC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI;YAC3B,CAAC,MAAM;YACP,CAAC,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,EACnG;YACD,OAAO;SACP;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzG,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Torrential Ruiner (Tier 6, 6/3)\r\n * Whenever you cast a spell on a Naga, give your minions +2/+3.\r\n *\r\n * Golden Torrential Ruiner (Tier 6, 12/6)\r\n * Whenever you cast a spell on a Naga, give your minions +4/+6.\r\n */\r\nimport { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { addStatsToBoard, hasCorrectTribe } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst attackBuff = 2;\r\nconst healthBuff = 3;\r\n\r\nexport const TorrentialRuiner: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TorrentialRuiner_BG36_622, CardIds.TorrentialRuiner_BG36_622_G],\r\n\tonTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst target = input.target;\r\n\t\tif (\r\n\t\t\tinput.source !== input.hero ||\r\n\t\t\t!target ||\r\n\t\t\t!hasCorrectTribe(target, input.hero, Race.NAGA, input.gameState.anomalies, input.gameState.allCards)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst mult = entity.cardId === CardIds.TorrentialRuiner_BG36_622_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, attackBuff * mult, healthBuff * mult, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreasureParrot = void 0;
|
|
4
|
+
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
5
|
+
const damageThreshold = 35;
|
|
6
|
+
exports.TreasureParrot = {
|
|
7
|
+
cardIds: ["BG36_763", "BG36_763_G"],
|
|
8
|
+
afterDealDamage: (minion, input) => {
|
|
9
|
+
var _a;
|
|
10
|
+
if (!('entityId' in input.damageDealer) || input.damageDealer.entityId !== minion.entityId) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (input.damage <= 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
minion.scriptDataNum1 = ((_a = minion.scriptDataNum1) !== null && _a !== void 0 ? _a : damageThreshold) - input.damage;
|
|
17
|
+
const copies = minion.cardId === "BG36_763_G" ? 2 : 1;
|
|
18
|
+
while (minion.scriptDataNum1 <= 0) {
|
|
19
|
+
(0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, Array(copies).fill("BG28_830"), input.gameState);
|
|
20
|
+
minion.scriptDataNum1 += damageThreshold;
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=treasure-parrot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treasure-parrot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/treasure-parrot.ts"],"names":[],"mappings":";;;AAWA,qEAAmE;AAInE,MAAM,eAAe,GAAG,EAAE,CAAC;AAEd,QAAA,cAAc,GAAwB;IAClD,OAAO,EAAE,0BAAoE;IAC7E,eAAe,EAAE,CAAC,MAAmB,EAAE,KAA2B,EAAE,EAAE;;QACrE,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;YAC3F,OAAO;SACP;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,OAAO;SACP;QAED,MAAM,CAAC,cAAc,GAAG,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,eAAe,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,cAAc,IAAI,CAAC,EAAE;YAClC,IAAA,8BAAc,EACb,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,YAA8B,EAChD,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,CAAC,cAAc,IAAI,eAAe,CAAC;SACzC;IACF,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Treasure Parrot (Pirate)\r\n * Once this deals 35 damage, get a Golden Touch. (35 left!)\r\n *\r\n * Golden Treasure Parrot\r\n * Once this deals 35 damage, get 2 Golden Touches. (35 left!)\r\n *\r\n * Remaining damage lives on `scriptDataNum1` (default 35).\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AfterDealDamageInput } from '../../../simulation/damage-effects';\r\nimport { AfterDealDamageCard } from '../../card.interface';\r\n\r\nconst damageThreshold = 35;\r\n\r\nexport const TreasureParrot: AfterDealDamageCard = {\r\n\tcardIds: [CardIds.TreasureParrot_BG36_763, CardIds.TreasureParrot_BG36_763_G],\r\n\tafterDealDamage: (minion: BoardEntity, input: AfterDealDamageInput) => {\r\n\t\tif (!('entityId' in input.damageDealer) || input.damageDealer.entityId !== minion.entityId) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (input.damage <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tminion.scriptDataNum1 = (minion.scriptDataNum1 ?? damageThreshold) - input.damage;\r\n\t\tconst copies = minion.cardId === CardIds.TreasureParrot_BG36_763_G ? 2 : 1;\r\n\t\twhile (minion.scriptDataNum1 <= 0) {\r\n\t\t\taddCardsInHand(\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tArray(copies).fill(CardIds.GoldenTouch_BG28_830),\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tminion.scriptDataNum1 += damageThreshold;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TwilightTidehunter = void 0;
|
|
4
4
|
const stats_1 = require("../../../simulation/stats");
|
|
5
|
-
const handBuff =
|
|
5
|
+
const handBuff = 8;
|
|
6
6
|
exports.TwilightTidehunter = {
|
|
7
7
|
cardIds: ["BG36_703", "BG36_703_G"],
|
|
8
8
|
onTavernSpellCast: (entity, input) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twilight-tidehunter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-tidehunter.ts"],"names":[],"mappings":";;;AAQA,qDAAwD;AAIxD,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEN,QAAA,kBAAkB,GAA0B;IACxD,OAAO,EAAE,0BAA4E;IACrF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC3D,OAAO;SACP;QAED,MAAM,MAAM,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzG,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Twilight Tidehunter (Tier 4,
|
|
1
|
+
{"version":3,"file":"twilight-tidehunter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/twilight-tidehunter.ts"],"names":[],"mappings":";;;AAQA,qDAAwD;AAIxD,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEN,QAAA,kBAAkB,GAA0B;IACxD,OAAO,EAAE,0BAA4E;IACrF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC3D,OAAO;SACP;QAED,MAAM,MAAM,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzG,CAAC;CACD,CAAC","sourcesContent":["/**\r\n * Twilight Tidehunter (Tier 4, 4/6)\r\n * Whenever you cast a spell on this, give the left-most minion in your hand +8/+8.\r\n *\r\n * Golden Twilight Tidehunter (Tier 4, 8/12)\r\n * Whenever you cast a spell on this, give the left-most minion in your hand +16/+16.\r\n */\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\nimport { CardIds } from '../../../services/card-ids';\r\n\r\nconst handBuff = 8;\r\n\r\nexport const TwilightTidehunter: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TwilightTidehunter_BG36_703, CardIds.TwilightTidehunter_BG36_703_G],\r\n\tonTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero || input.target !== entity) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst target = (input.hero.hand ?? []).filter((e) => !!e.maxHealth && !!e.cardId)[0];\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst mult = entity.cardId === CardIds.TwilightTidehunter_BG36_703_G ? 2 : 1;\r\n\t\tmodifyStats(target, entity, handBuff * mult, handBuff * mult, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|