@firestone-hs/simulate-bgs-battle 1.1.659 → 1.1.662
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/cards-data.d.ts +3 -1
- package/dist/cards/cards-data.js +3 -2
- package/dist/cards/cards-data.js.map +1 -1
- package/dist/cards/impl/_card-mappings.js +4 -0
- package/dist/cards/impl/_card-mappings.js.map +1 -1
- package/dist/cards/impl/minion/apexis-guardian.js +15 -11
- package/dist/cards/impl/minion/apexis-guardian.js.map +1 -1
- package/dist/cards/impl/minion/bassgill.js +1 -1
- package/dist/cards/impl/minion/bassgill.js.map +1 -1
- package/dist/cards/impl/minion/blue-volumizer.d.ts +2 -2
- package/dist/cards/impl/minion/blue-volumizer.js +1 -1
- package/dist/cards/impl/minion/blue-volumizer.js.map +1 -1
- package/dist/cards/impl/minion/bluesy-siren.js +1 -1
- package/dist/cards/impl/minion/bluesy-siren.js.map +1 -1
- package/dist/cards/impl/minion/clunker-junker.js +1 -1
- package/dist/cards/impl/minion/clunker-junker.js.map +1 -1
- package/dist/cards/impl/minion/dramaloc.js +7 -6
- package/dist/cards/impl/minion/dramaloc.js.map +1 -1
- package/dist/cards/impl/minion/impulsive-trickster.js +13 -5
- package/dist/cards/impl/minion/impulsive-trickster.js.map +1 -1
- package/dist/cards/impl/minion/pashmar-the-vengeful.js +2 -1
- package/dist/cards/impl/minion/pashmar-the-vengeful.js.map +1 -1
- package/dist/cards/impl/minion/profound-thinker.d.ts +2 -2
- package/dist/cards/impl/minion/profound-thinker.js +11 -8
- package/dist/cards/impl/minion/profound-thinker.js.map +1 -1
- package/dist/cards/impl/minion/red-volumizer.d.ts +2 -2
- package/dist/cards/impl/minion/red-volumizer.js +1 -1
- package/dist/cards/impl/minion/red-volumizer.js.map +1 -1
- package/dist/cards/impl/minion/rickety-repairbot.js +1 -1
- package/dist/cards/impl/minion/rickety-repairbot.js.map +1 -1
- package/dist/cards/impl/minion/roaring-rallier.d.ts +2 -2
- package/dist/cards/impl/minion/roaring-rallier.js +1 -1
- package/dist/cards/impl/minion/roaring-rallier.js.map +1 -1
- package/dist/cards/impl/minion/silent-enforcer.js +1 -1
- package/dist/cards/impl/minion/silent-enforcer.js.map +1 -1
- package/dist/cards/impl/minion/soulsplitter.js +6 -11
- package/dist/cards/impl/minion/soulsplitter.js.map +1 -1
- package/dist/cards/impl/minion/the-glad-iator.d.ts +2 -0
- package/dist/cards/impl/minion/the-glad-iator.js +12 -0
- package/dist/cards/impl/minion/the-glad-iator.js.map +1 -0
- package/dist/cards/impl/minion/timewarped-electron.js +1 -1
- package/dist/cards/impl/minion/timewarped-electron.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-immortal.js +2 -2
- package/dist/cards/impl/minion/timewarped-immortal.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-interpreter.js +2 -1
- package/dist/cards/impl/minion/timewarped-interpreter.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-murcules.js +3 -0
- package/dist/cards/impl/minion/timewarped-murcules.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-pashmar.js +2 -1
- package/dist/cards/impl/minion/timewarped-pashmar.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-trickster.js +5 -8
- package/dist/cards/impl/minion/timewarped-trickster.js.map +1 -1
- package/dist/cards/impl/minion/timewarped-warghoul.js +9 -1
- package/dist/cards/impl/minion/timewarped-warghoul.js.map +1 -1
- package/dist/cards/impl/minion/whelp-watcher.js +4 -1
- package/dist/cards/impl/minion/whelp-watcher.js.map +1 -1
- package/dist/cards/impl/spellcraft/crab-mount.d.ts +2 -0
- package/dist/cards/impl/spellcraft/crab-mount.js +23 -0
- package/dist/cards/impl/spellcraft/crab-mount.js.map +1 -0
- package/dist/cards/impl/spellcraft/deep-blues.js +2 -1
- package/dist/cards/impl/spellcraft/deep-blues.js.map +1 -1
- package/dist/cards/impl/trinket/sepulchral-sergent.js +4 -2
- package/dist/cards/impl/trinket/sepulchral-sergent.js.map +1 -1
- package/dist/simulation/damage-effects.js +1 -1
- package/dist/simulation/damage-effects.js.map +1 -1
- package/dist/simulation/deathrattle-effects.js +10 -2
- package/dist/simulation/deathrattle-effects.js.map +1 -1
- package/dist/simulation/deathrattle-spawns.js +14 -14
- package/dist/simulation/deathrattle-spawns.js.map +1 -1
- package/dist/simulation/magnetize.d.ts +1 -1
- package/dist/simulation/magnetize.js +74 -64
- package/dist/simulation/magnetize.js.map +1 -1
- package/dist/utils.d.ts +3 -1
- package/dist/utils.js +13 -8
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ const player_global_effects_1 = require("../../../mechanics/player-global-effect
|
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
6
|
exports.BlueVolumizer = {
|
|
7
7
|
cardIds: ["BG34_170t2", "BG34_170t2_G"],
|
|
8
|
-
|
|
8
|
+
onBeforeMagnetizeSelf: (entity, input) => {
|
|
9
9
|
const mult = entity.cardId === "BG34_170t2_G" ? 2 : 1;
|
|
10
10
|
const buff = 3 * mult;
|
|
11
11
|
(0, player_global_effects_1.updateVolumizerBuffs)(input.hero, input.board, 0, buff, input.gameState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blue-volumizer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/blue-volumizer.ts"],"names":[],"mappings":";;;AACA,oFAAgF;AAGhF,qDAAwD;AAG3C,QAAA,aAAa,
|
|
1
|
+
{"version":3,"file":"blue-volumizer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/blue-volumizer.ts"],"names":[],"mappings":";;;AACA,oFAAgF;AAGhF,qDAAwD;AAG3C,QAAA,aAAa,GAA8B;IACvD,OAAO,EAAE,8BAA2F;IACpG,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,mBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;QACtB,IAAA,4CAAoB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EACzC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EACzC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateVolumizerBuffs } from '../../../mechanics/player-global-effects';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeSelfInput } from '../../../simulation/magnetize';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnBeforeMagnetizeSelfCard } from '../../card.interface';\r\n\r\nexport const BlueVolumizer: OnBeforeMagnetizeSelfCard = {\r\n\tcardIds: [CardIds.AutoAccelerator_BlueVolumizerToken_BG34_170t2, CardIds.BlueVolumizer_BG34_170t2_G],\r\n\tonBeforeMagnetizeSelf: (entity: BoardEntity, input: OnBeforeMagnetizeSelfInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.BlueVolumizer_BG34_170t2_G ? 2 : 1;\r\n\t\tconst buff = 3 * mult;\r\n\t\tupdateVolumizerBuffs(input.hero, input.board, 0, buff, input.gameState);\r\n\t\tmodifyStats(\r\n\t\t\tentity,\r\n\t\t\tentity,\r\n\t\t\tinput.hero.globalInfo.VolumizerAttackBuff,\r\n\t\t\tinput.hero.globalInfo.VolumizerHealthBuff,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -18,7 +18,7 @@ exports.BluesySiren = {
|
|
|
18
18
|
(0, cast_tavern_spell_1.castTavernSpell)(spellCast, {
|
|
19
19
|
spellCardId: spellCast,
|
|
20
20
|
source: input.attackingHero,
|
|
21
|
-
target:
|
|
21
|
+
target: input.attacker,
|
|
22
22
|
board: input.attackingBoard,
|
|
23
23
|
hero: input.attackingHero,
|
|
24
24
|
otherBoard: input.defendingBoard,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bluesy-siren.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bluesy-siren.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,4EAAuE;AAGvE,0CAAiD;AAGpC,QAAA,WAAW,GAA4D;IACnF,OAAO,EAAE,0BAA8D;IACvE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GACd,MAAM,CAAC,MAAM,iBAAmC;YAC/C,CAAC;YACD,CAAC,YAAiD,CAAC;QACrD,IAAA,mCAAe,EAAC,SAAS,EAAE;YAC1B,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"bluesy-siren.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bluesy-siren.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,4EAAuE;AAGvE,0CAAiD;AAGpC,QAAA,WAAW,GAA4D;IACnF,OAAO,EAAE,0BAA8D;IACvE,cAAc,EAAE,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QAC7E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,IAAI,EACT,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC;QACxD,MAAM,SAAS,GACd,MAAM,CAAC,MAAM,iBAAmC;YAC/C,CAAC;YACD,CAAC,YAAiD,CAAC;QACrD,IAAA,mCAAe,EAAC,SAAS,EAAE;YAC1B,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,MAAM,EAAE,KAAK,CAAC,QAAQ;YACtB,KAAK,EAAE,KAAK,CAAC,cAAc;YAC3B,IAAI,EAAE,KAAK,CAAC,aAAa;YACzB,UAAU,EAAE,KAAK,CAAC,cAAc;YAChC,SAAS,EAAE,KAAK,CAAC,aAAa;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DefaultChargesCard, OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const BluesySiren: OnWheneverAnotherMinionAttacksCard & DefaultChargesCard = {\r\n\tcardIds: [CardIds.BluesySiren_BG34_931, CardIds.BluesySiren_BG34_931_G],\r\n\tdefaultCharges: (entity: BoardEntity) => 3,\r\n\tonWheneverAnotherMinionAttacks: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.NAGA,\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\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tminion.abiityChargesLeft = minion.abiityChargesLeft - 1;\r\n\t\tconst spellCast =\r\n\t\t\tminion.cardId === CardIds.BluesySiren_BG34_931_G\r\n\t\t\t\t? CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502_Gt\r\n\t\t\t\t: CardIds.DeepBlueCrooner_DeepBluesToken_BG26_502t;\r\n\t\tcastTavernSpell(spellCast, {\r\n\t\t\tspellCardId: spellCast,\r\n\t\t\tsource: input.attackingHero,\r\n\t\t\ttarget: input.attacker,\r\n\t\t\tboard: input.attackingBoard,\r\n\t\t\thero: input.attackingHero,\r\n\t\t\totherBoard: input.defendingBoard,\r\n\t\t\totherHero: input.defendingHero,\r\n\t\t\tgameState: input.gameState,\r\n\t\t});\r\n\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -16,7 +16,7 @@ exports.ClunkerJunker = {
|
|
|
16
16
|
for (let i = 0; i < numberOfMagnetizes; i++) {
|
|
17
17
|
const minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize((_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 1);
|
|
18
18
|
input.gameState.spectator.registerPowerTarget(minion, junkerTarget, input.board, null, null);
|
|
19
|
-
(0, magnetize_1.magnetizeToTarget)(junkerTarget, minion, minionToMagnetize, input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
19
|
+
(0, magnetize_1.magnetizeToTarget)([junkerTarget], minion, [minionToMagnetize], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clunker-junker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/clunker-junker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAAqD;AAErD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,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,CAC9F,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE;YACjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,eAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAC3E,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAC1B,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7F,IAAA,6BAAiB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"clunker-junker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/clunker-junker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAAqD;AAErD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,aAAa,GAAkB;IAC3C,OAAO,EAAE,0BAAkE;IAC3E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/C,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,CAC9F,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,cAAc,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE;YACjB,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,eAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAC3E,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAC1B,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7F,IAAA,6BAAiB,EAChB,CAAC,YAAY,CAAC,EACd,MAAM,EACN,CAAC,iBAAiB,CAAC,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,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 { pickRandom } from '../../../services/utils';\r\nimport { BattlecryInput } from '../../../simulation/battlecries';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { BattlecryCard } from '../../card.interface';\r\n\r\nexport const ClunkerJunker: BattlecryCard = {\r\n\tcardIds: [CardIds.ClunkerJunker_BG29_503, CardIds.ClunkerJunker_BG29_503_G],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst boardWithMechs = input.board.filter((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst junkerTarget = pickRandom(boardWithMechs);\r\n\t\tif (junkerTarget) {\r\n\t\t\tconst numberOfMagnetizes = minion.cardId === CardIds.ClunkerJunker_BG29_503 ? 1 : 2;\r\n\t\t\tfor (let i = 0; i < numberOfMagnetizes; i++) {\r\n\t\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(\r\n\t\t\t\t\tinput.hero.tavernTier ?? 1,\r\n\t\t\t\t);\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(minion, junkerTarget, input.board, null, null);\r\n\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\t[junkerTarget],\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t[minionToMagnetize],\r\n\t\t\t\t\tinput.board,\r\n\t\t\t\t\tinput.hero,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Dramaloc = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
4
5
|
const utils_1 = require("../../../services/utils");
|
|
5
6
|
const stats_1 = require("../../../simulation/stats");
|
|
7
|
+
const utils_2 = require("../../../utils");
|
|
6
8
|
exports.Dramaloc = {
|
|
7
9
|
cardIds: ["BG34_143", "BG34_143_G"],
|
|
8
10
|
deathrattleSpawn: (minion, input) => {
|
|
@@ -12,12 +14,11 @@ exports.Dramaloc = {
|
|
|
12
14
|
.sort((a, b) => b.attack - a.attack)[0];
|
|
13
15
|
if (!!statsSource) {
|
|
14
16
|
for (let i = 0; i < mult; i++) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
17
|
+
const candidates = input.boardWithDeadEntity.filter((e) => e !== minion &&
|
|
18
|
+
(0, utils_2.hasCorrectTribe)(e, input.boardWithDeadEntityHero, reference_data_1.Race.MURLOC, input.gameState.anomalies, input.gameState.allCards));
|
|
19
|
+
const targets = (0, utils_1.pickMultipleRandom)(candidates, 2);
|
|
20
|
+
for (const target of targets) {
|
|
21
|
+
(0, stats_1.modifyStats)(target, minion, statsSource.attack, statsSource.health, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dramaloc.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dramaloc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dramaloc.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dramaloc.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mDAA6D;AAE7D,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,QAAQ,GAAyB;IAC7C,OAAO,EAAE,0BAAwD;IACjE,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,IAAI;aACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,WAAW,EAAE;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,KAAK,MAAM;oBACZ,IAAA,uBAAe,EACd,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF,CAAC;gBACF,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,MAAM,EAClB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;QAED,OAAO,EAAE,CAAC;IACX,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 { pickMultipleRandom } from '../../../services/utils';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const Dramaloc: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.Dramaloc_BG34_143, CardIds.Dramaloc_BG34_143_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.Dramaloc_BG34_143_G ? 2 : 1;\r\n\t\tconst statsSource = input.boardWithDeadEntityHero.hand\r\n\t\t\t.filter((e) => e.attack != null && !!e.cardId)\r\n\t\t\t.sort((a, b) => b.attack - a.attack)[0];\r\n\t\tif (!!statsSource) {\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tconst candidates = input.boardWithDeadEntity.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\te !== minion &&\r\n\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tRace.MURLOC,\r\n\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t);\r\n\t\t\t\tconst targets = pickMultipleRandom(candidates, 2);\r\n\t\t\t\tfor (const target of targets) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\tstatsSource.attack,\r\n\t\t\t\t\t\tstatsSource.health,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ImpulsiveTrickster = void 0;
|
|
4
|
+
const utils_1 = require("../../../services/utils");
|
|
4
5
|
const attack_1 = require("../../../simulation/attack");
|
|
5
6
|
const stats_1 = require("../../../simulation/stats");
|
|
6
7
|
exports.ImpulsiveTrickster = {
|
|
@@ -9,11 +10,18 @@ exports.ImpulsiveTrickster = {
|
|
|
9
10
|
var _a;
|
|
10
11
|
const mult = minion.cardId === "BG21_006_G" ? 2 : 1;
|
|
11
12
|
const hasImpulsivePortrait = (_a = input.boardWithDeadEntityHero.trinkets) === null || _a === void 0 ? void 0 : _a.some((t) => t.cardId === "BG32_MagicItem_820");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
if (hasImpulsivePortrait) {
|
|
14
|
+
const targets = (0, attack_1.getNeighbours)(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight);
|
|
15
|
+
for (let j = 0; j < mult; j++) {
|
|
16
|
+
for (const target of targets) {
|
|
17
|
+
(0, stats_1.modifyStats)(target, minion, 0, minion.maxHealth, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const candidates = input.boardWithDeadEntity.filter((e) => e != minion);
|
|
23
|
+
for (let j = 0; j < mult; j++) {
|
|
24
|
+
const target = (0, utils_1.pickRandomAlive)(candidates);
|
|
17
25
|
(0, stats_1.modifyStats)(target, minion, 0, minion.maxHealth, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
|
|
18
26
|
}
|
|
19
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impulsive-trickster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/impulsive-trickster.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAyB;IACvD,OAAO,EAAE,0BAA4E;IACrF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,oBAAoB,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,QAAQ,0CAAE,IAAI,CACxE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC;QACF,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"impulsive-trickster.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/impulsive-trickster.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAC1D,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAyB;IACvD,OAAO,EAAE,0BAA4E;IACrF,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAAE,EAAE;;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,oBAAoB,GAAG,MAAA,KAAK,CAAC,uBAAuB,CAAC,QAAQ,0CAAE,IAAI,CACxE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC;QACF,IAAI,oBAAoB,EAAE;YACzB,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;oBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;aAAM;YACN,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;YACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;gBAC3C,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,MAAM,CAAC,SAAS,EAChB,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const ImpulsiveTrickster: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.ImpulsiveTrickster_BG21_006, CardIds.ImpulsiveTrickster_BG21_006_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ImpulsiveTrickster_BG21_006_G ? 2 : 1;\r\n\t\tconst hasImpulsivePortrait = input.boardWithDeadEntityHero.trinkets?.some(\r\n\t\t\t(t) => t.cardId === CardIds.ImpulsivePortrait_BG32_MagicItem_820,\r\n\t\t);\r\n\t\tif (hasImpulsivePortrait) {\r\n\t\t\tconst targets = getNeighbours(input.boardWithDeadEntity, input.deadEntity, input.deadEntityIndexFromRight);\r\n\t\t\tfor (let j = 0; j < mult; j++) {\r\n\t\t\t\tfor (const target of targets) {\r\n\t\t\t\t\tmodifyStats(\r\n\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\tminion,\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tminion.maxHealth,\r\n\t\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst candidates = input.boardWithDeadEntity.filter((e) => e != minion);\r\n\t\t\tfor (let j = 0; j < mult; j++) {\r\n\t\t\t\tconst target = pickRandomAlive(candidates);\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tminion.maxHealth,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,10 +6,11 @@ exports.PashmarTheVengeful = {
|
|
|
6
6
|
cardIds: ["BG23_014", "BG23_014_G"],
|
|
7
7
|
baseAvengeValue: (cardId) => 3,
|
|
8
8
|
avenge: (minion, input) => {
|
|
9
|
+
var _a;
|
|
9
10
|
const mult = minion.cardId === "BG23_014_G" ? 2 : 1;
|
|
10
11
|
const cardsToAdd = [];
|
|
11
12
|
for (let i = 0; i < mult; i++) {
|
|
12
|
-
cardsToAdd.push(input.gameState.cardsData.getRandomSpellcraft());
|
|
13
|
+
cardsToAdd.push(input.gameState.cardsData.getRandomSpellcraft({ maxTavernTier: (_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 3 }));
|
|
13
14
|
}
|
|
14
15
|
(0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, cardsToAdd, input.gameState);
|
|
15
16
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pashmar-the-vengeful.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/pashmar-the-vengeful.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,0BAA4E;IACrF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"pashmar-the-vengeful.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/pashmar-the-vengeful.ts"],"names":[],"mappings":";;;AAGA,qEAAmE;AAGtD,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,0BAA4E;IACrF,eAAe,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,MAAmB,EAAE,KAAkB,EAAE,EAAE;;QACnD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,UAAU,CAAC,IAAI,CACd,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,aAAa,EAAE,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,EAAE,CAAC,CAC5F,CAAC;SACF;QACD,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const PashmarTheVengeful: AvengeCard = {\r\n\tcardIds: [CardIds.PashmarTheVengeful_BG23_014, CardIds.PashmarTheVengeful_BG23_014_G],\r\n\tbaseAvengeValue: (cardId: string) => 3,\r\n\tavenge: (minion: BoardEntity, input: AvengeInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.PashmarTheVengeful_BG23_014_G ? 2 : 1;\r\n\t\tconst cardsToAdd = [];\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tcardsToAdd.push(\r\n\t\t\t\tinput.gameState.cardsData.getRandomSpellcraft({ maxTavernTier: input.hero.tavernTier ?? 3 }),\r\n\t\t\t);\r\n\t\t}\r\n\t\taddCardsInHand(input.hero, input.board, cardsToAdd, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const ProfoundThinker:
|
|
1
|
+
import { RallyCard } from '../../card.interface';
|
|
2
|
+
export declare const ProfoundThinker: RallyCard;
|
|
@@ -5,23 +5,26 @@ const cast_tavern_spell_1 = require("../../../mechanics/cast-tavern-spell");
|
|
|
5
5
|
const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
|
|
6
6
|
exports.ProfoundThinker = {
|
|
7
7
|
cardIds: ["BG34_929", "BG34_929_G"],
|
|
8
|
-
|
|
8
|
+
rally: (minion, input) => {
|
|
9
|
+
var _a;
|
|
9
10
|
const mult = minion.cardId === "BG34_929_G" ? 2 : 1;
|
|
10
11
|
for (let i = 0; i < mult; i++) {
|
|
11
|
-
const spell = input.gameState.cardsData.getRandomSpellcraft(
|
|
12
|
+
const spell = input.gameState.cardsData.getRandomSpellcraft({
|
|
13
|
+
maxTavernTier: (_a = input.attackingHero.tavernTier) !== null && _a !== void 0 ? _a : 3,
|
|
14
|
+
});
|
|
12
15
|
(0, cast_tavern_spell_1.castTavernSpell)(spell, {
|
|
13
16
|
spellCardId: spell,
|
|
14
17
|
source: minion,
|
|
15
18
|
target: minion,
|
|
16
|
-
board: input.
|
|
17
|
-
hero: input.
|
|
18
|
-
otherBoard: input.
|
|
19
|
-
otherHero: input.
|
|
19
|
+
board: input.attackingBoard,
|
|
20
|
+
hero: input.attackingHero,
|
|
21
|
+
otherBoard: input.defendingBoard,
|
|
22
|
+
otherHero: input.defendingHero,
|
|
20
23
|
gameState: input.gameState,
|
|
21
24
|
});
|
|
22
|
-
(0, cards_in_hand_1.addCardsInHand)(input.
|
|
25
|
+
(0, cards_in_hand_1.addCardsInHand)(input.attackingHero, input.attackingBoard, [spell], input.gameState);
|
|
23
26
|
}
|
|
24
|
-
return
|
|
27
|
+
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
25
28
|
},
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=profound-thinker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profound-thinker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/profound-thinker.ts"],"names":[],"mappings":";;;AACA,4EAAuE;
|
|
1
|
+
{"version":3,"file":"profound-thinker.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/profound-thinker.ts"],"names":[],"mappings":";;;AACA,4EAAuE;AAEvE,qEAAmE;AAItD,QAAA,eAAe,GAAc;IACzC,OAAO,EAAE,0BAAsE;IAC/E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;gBAC3D,aAAa,EAAE,MAAA,KAAK,CAAC,aAAa,CAAC,UAAU,mCAAI,CAAC;aAClD,CAAC,CAAC;YACH,IAAA,mCAAe,EAAC,KAAK,EAAE;gBACtB,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,KAAK,CAAC,cAAc;gBAC3B,IAAI,EAAE,KAAK,CAAC,aAAa;gBACzB,UAAU,EAAE,KAAK,CAAC,cAAc;gBAChC,SAAS,EAAE,KAAK,CAAC,aAAa;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,IAAA,8BAAc,EAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACpF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { castTavernSpell } from '../../../mechanics/cast-tavern-spell';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const ProfoundThinker: RallyCard = {\r\n\tcardIds: [CardIds.ProfoundThinker_BG34_929, CardIds.ProfoundThinker_BG34_929_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.ProfoundThinker_BG34_929_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst spell = input.gameState.cardsData.getRandomSpellcraft({\r\n\t\t\t\tmaxTavernTier: input.attackingHero.tavernTier ?? 3,\r\n\t\t\t});\r\n\t\t\tcastTavernSpell(spell, {\r\n\t\t\t\tspellCardId: spell,\r\n\t\t\t\tsource: minion,\r\n\t\t\t\ttarget: minion,\r\n\t\t\t\tboard: input.attackingBoard,\r\n\t\t\t\thero: input.attackingHero,\r\n\t\t\t\totherBoard: input.defendingBoard,\r\n\t\t\t\totherHero: input.defendingHero,\r\n\t\t\t\tgameState: input.gameState,\r\n\t\t\t});\r\n\t\t\taddCardsInHand(input.attackingHero, input.attackingBoard, [spell], input.gameState);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const RedVolumizer:
|
|
1
|
+
import { OnBeforeMagnetizeSelfCard } from '../../card.interface';
|
|
2
|
+
export declare const RedVolumizer: OnBeforeMagnetizeSelfCard;
|
|
@@ -5,7 +5,7 @@ const player_global_effects_1 = require("../../../mechanics/player-global-effect
|
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
6
|
exports.RedVolumizer = {
|
|
7
7
|
cardIds: ["BG34_170t", "BG34_170t_G"],
|
|
8
|
-
|
|
8
|
+
onBeforeMagnetizeSelf: (entity, input) => {
|
|
9
9
|
const mult = entity.cardId === "BG34_170t_G" ? 2 : 1;
|
|
10
10
|
const buff = 3 * mult;
|
|
11
11
|
(0, player_global_effects_1.updateVolumizerBuffs)(input.hero, input.board, buff, 0, input.gameState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"red-volumizer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/red-volumizer.ts"],"names":[],"mappings":";;;AACA,oFAAgF;AAGhF,qDAAwD;AAG3C,QAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"red-volumizer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/red-volumizer.ts"],"names":[],"mappings":";;;AACA,oFAAgF;AAGhF,qDAAwD;AAG3C,QAAA,YAAY,GAA8B;IACtD,OAAO,EAAE,4BAAuF;IAChG,qBAAqB,EAAE,CAAC,MAAmB,EAAE,KAAiC,EAAE,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;QACtB,IAAA,4CAAoB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EACzC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EACzC,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateVolumizerBuffs } from '../../../mechanics/player-global-effects';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeSelfInput } from '../../../simulation/magnetize';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnBeforeMagnetizeSelfCard } from '../../card.interface';\r\n\r\nexport const RedVolumizer: OnBeforeMagnetizeSelfCard = {\r\n\tcardIds: [CardIds.AutoAccelerator_RedVolumizerToken_BG34_170t, CardIds.RedVolumizer_BG34_170t_G],\r\n\tonBeforeMagnetizeSelf: (entity: BoardEntity, input: OnBeforeMagnetizeSelfInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.RedVolumizer_BG34_170t_G ? 2 : 1;\r\n\t\tconst buff = 3 * mult;\r\n\t\tupdateVolumizerBuffs(input.hero, input.board, buff, 0, input.gameState);\r\n\t\tmodifyStats(\r\n\t\t\tentity,\r\n\t\t\tentity,\r\n\t\t\tinput.hero.globalInfo.VolumizerAttackBuff,\r\n\t\t\tinput.hero.globalInfo.VolumizerHealthBuff,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,7 +9,7 @@ exports.RicketyRepairbot = {
|
|
|
9
9
|
const mult = minion.cardId === "BG32_173_G" ? 2 : 1;
|
|
10
10
|
for (let i = 0; i < mult; i++) {
|
|
11
11
|
const minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize((_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 1);
|
|
12
|
-
(0, magnetize_1.magnetizeToTarget)(minion, minion, minionToMagnetize, input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
12
|
+
(0, magnetize_1.magnetizeToTarget)([minion], minion, [minionToMagnetize], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rickety-repairbot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rickety-repairbot.ts"],"names":[],"mappings":";;;AAEA,6DAAkE;AAGrD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0BAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC;YACzG,IAAA,6BAAiB,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"rickety-repairbot.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/rickety-repairbot.ts"],"names":[],"mappings":";;;AAEA,6DAAkE;AAGrD,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,0BAAwE;IACjF,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC,CAAC;YACzG,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,CAAC,iBAAiB,CAAC,EACnB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;SACF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const RicketyRepairbot: EndOfTurnCard = {\r\n\tcardIds: [CardIds.RicketyRepairbot_BG32_173, CardIds.RicketyRepairbot_BG32_173_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.RicketyRepairbot_BG32_173_G ? 2 : 1;\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst minionToMagnetize = input.gameState.cardsData.getRandomMechToMagnetize(input.hero.tavernTier ?? 1);\r\n\t\t\tmagnetizeToTarget(\r\n\t\t\t\t[minion],\r\n\t\t\t\tminion,\r\n\t\t\t\t[minionToMagnetize],\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.otherBoard,\r\n\t\t\t\tinput.otherHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const RoaringRallier:
|
|
1
|
+
import { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';
|
|
2
|
+
export declare const RoaringRallier: OnWheneverAnotherMinionAttacksCard;
|
|
@@ -6,7 +6,7 @@ const stats_1 = require("../../../simulation/stats");
|
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
7
|
exports.RoaringRallier = {
|
|
8
8
|
cardIds: ["BG29_816", "BG29_816_G"],
|
|
9
|
-
|
|
9
|
+
onWheneverAnotherMinionAttacks: (minion, input) => {
|
|
10
10
|
if ((0, utils_1.hasCorrectTribe)(input.attacker, input.attackingHero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {
|
|
11
11
|
if (minion !== input.attacker) {
|
|
12
12
|
const stats = minion.cardId === "BG29_816_G" ? 2 : 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roaring-rallier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roaring-rallier.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;
|
|
1
|
+
{"version":3,"file":"roaring-rallier.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/roaring-rallier.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,cAAc,GAAuC;IACjE,OAAO,EAAE,0BAAoE;IAC7E,8BAA8B,EAAE,CAC/B,MAAmB,EACnB,KAAoB,EACuC,EAAE;QAC7D,IACC,IAAA,uBAAe,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,IAAI,MAAM,KAAK,KAAK,CAAC,QAAQ,EAAE;gBAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAA,mBAAW,EACV,KAAK,CAAC,QAAQ,EACd,MAAM,EACN,CAAC,GAAG,KAAK,EACT,CAAC,GAAG,KAAK,EACT,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnWheneverAnotherMinionAttacksCard } from '../../card.interface';\r\n\r\nexport const RoaringRallier: OnWheneverAnotherMinionAttacksCard = {\r\n\tcardIds: [CardIds.RoaringRallier_BG29_816, CardIds.RoaringRallier_BG29_816_G],\r\n\tonWheneverAnotherMinionAttacks: (\r\n\t\tminion: BoardEntity,\r\n\t\tinput: OnAttackInput,\r\n\t): { dmgDoneByAttacker: number; dmgDoneByDefender: number } => {\r\n\t\tif (\r\n\t\t\thasCorrectTribe(\r\n\t\t\t\tinput.attacker,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tRace.DRAGON,\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\t\tif (minion !== input.attacker) {\r\n\t\t\t\tconst stats = minion.cardId === CardIds.RoaringRallier_BG29_816_G ? 2 : 1;\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\tinput.attacker,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t3 * stats,\r\n\t\t\t\t\t1 * stats,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -17,7 +17,7 @@ exports.SilentEnforcer = {
|
|
|
17
17
|
];
|
|
18
18
|
for (const target of targets) {
|
|
19
19
|
input.gameState.spectator.registerPowerTarget(minion, target, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoardHero);
|
|
20
|
-
(0, attack_1.dealDamageToMinion)(target, input.otherBoard, input.otherBoardHero, minion,
|
|
20
|
+
(0, attack_1.dealDamageToMinion)(target, input.otherBoard, input.otherBoardHero, minion, 2, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silent-enforcer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silent-enforcer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAAgE;AAEhE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,2BAA2B,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/G,MAAM,2BAA2B,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG;gBAEf,GAAG,2BAA2B,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAA,uBAAe,EACf,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF;gBAED,GAAG,2BAA2B;aAC9B,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,2BAAkB,EACjB,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,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 { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SilentEnforcer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SilentEnforcer_BG33_156, CardIds.SilentEnforcer_BG33_156_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.SilentEnforcer_BG33_156_G ? 2 : 1;\r\n\t\tconst friendlyMinionsAliveAtStart = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst opponentMinionsAliveAtStart = input.otherBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst targets = [\r\n\t\t\t\t// Friendly non-demons\r\n\t\t\t\t...friendlyMinionsAliveAtStart.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!hasCorrectTribe(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t\t// All opponent minions\r\n\t\t\t\t...opponentMinionsAliveAtStart,\r\n\t\t\t];\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t);\r\n\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\
|
|
1
|
+
{"version":3,"file":"silent-enforcer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/silent-enforcer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,uDAAgE;AAEhE,0CAAiD;AAGpC,QAAA,cAAc,GAAyB;IACnD,OAAO,EAAE,0BAAoE;IAC7E,gBAAgB,EAAE,CAAC,MAAmB,EAAE,KAAgC,EAA0B,EAAE;QACnG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,2BAA2B,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC/G,MAAM,2BAA2B,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG;gBAEf,GAAG,2BAA2B,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,IAAA,uBAAe,EACf,CAAC,EACD,KAAK,CAAC,uBAAuB,EAC7B,qBAAI,CAAC,KAAK,EACV,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,CACF;gBAED,GAAG,2BAA2B;aAC9B,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,cAAc,CACpB,CAAC;gBACF,IAAA,2BAAkB,EACjB,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,cAAc,EACpB,MAAM,EACN,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,CAAC;IACX,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 { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { DeathrattleSpawnCard } from '../../card.interface';\r\n\r\nexport const SilentEnforcer: DeathrattleSpawnCard = {\r\n\tcardIds: [CardIds.SilentEnforcer_BG33_156, CardIds.SilentEnforcer_BG33_156_G],\r\n\tdeathrattleSpawn: (minion: BoardEntity, input: DeathrattleTriggeredInput): readonly BoardEntity[] => {\r\n\t\tconst mult = minion.cardId === CardIds.SilentEnforcer_BG33_156_G ? 2 : 1;\r\n\t\tconst friendlyMinionsAliveAtStart = input.boardWithDeadEntity.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tconst opponentMinionsAliveAtStart = input.otherBoard.filter((e) => e.health > 0 && !e.definitelyDead);\r\n\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\tconst targets = [\r\n\t\t\t\t// Friendly non-demons\r\n\t\t\t\t...friendlyMinionsAliveAtStart.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!hasCorrectTribe(\r\n\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\t\t\t\tinput.gameState.allCards,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t\t// All opponent minions\r\n\t\t\t\t...opponentMinionsAliveAtStart,\r\n\t\t\t];\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t);\r\n\t\t\t\tdealDamageToMinion(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\tinput.otherBoardHero,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\t2,\r\n\t\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [];\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Soulsplitter = void 0;
|
|
4
|
-
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
4
|
const reborn_1 = require("../../../keywords/reborn");
|
|
6
5
|
const utils_1 = require("../../../services/utils");
|
|
7
|
-
const
|
|
6
|
+
const deathrattle_utils_1 = require("../../../simulation/deathrattle-utils");
|
|
8
7
|
exports.Soulsplitter = {
|
|
9
8
|
cardIds: ["BG25_023", "BG25_023_G"],
|
|
10
9
|
startOfCombatTiming: 'start-of-combat',
|
|
11
10
|
startOfCombat: (minion, input) => {
|
|
12
11
|
const numberOfTargets = minion.cardId === "BG25_023_G" ? 2 : 1;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (chosenUndead) {
|
|
19
|
-
(0, reborn_1.updateReborn)(chosenUndead, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
|
|
20
|
-
input.gameState.spectator.registerPowerTarget(minion, chosenUndead, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
21
|
-
}
|
|
12
|
+
const candidates = input.playerBoard.filter((e) => (0, deathrattle_utils_1.hasValidDeathrattle)(e, input.playerEntity, input.gameState) && !e.reborn);
|
|
13
|
+
const targets = (0, utils_1.pickMultipleRandom)(candidates, numberOfTargets);
|
|
14
|
+
for (const target of targets) {
|
|
15
|
+
(0, reborn_1.updateReborn)(target, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);
|
|
16
|
+
input.gameState.spectator.registerPowerTarget(minion, target, input.playerBoard, input.playerEntity, input.opponentEntity);
|
|
22
17
|
}
|
|
23
18
|
return true;
|
|
24
19
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"soulsplitter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/soulsplitter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"soulsplitter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/soulsplitter.ts"],"names":[],"mappings":";;;AACA,qDAAwD;AAExD,mDAA6D;AAC7D,6EAA4E;AAI/D,QAAA,YAAY,GAAsB;IAC9C,OAAO,EAAE,0BAAgE;IACzE,mBAAmB,EAAE,iBAAiB;IACtC,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uCAAmB,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAC/E,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,0BAAkB,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,qBAAY,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACzG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAC5C,MAAM,EACN,MAAM,EACN,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { updateReborn } from '../../../keywords/reborn';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandom } from '../../../services/utils';\r\nimport { hasValidDeathrattle } from '../../../simulation/deathrattle-utils';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const Soulsplitter: StartOfCombatCard = {\r\n\tcardIds: [CardIds.Soulsplitter_BG25_023, CardIds.Soulsplitter_BG25_023_G],\r\n\tstartOfCombatTiming: 'start-of-combat',\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst numberOfTargets = minion.cardId === CardIds.Soulsplitter_BG25_023_G ? 2 : 1;\r\n\t\tconst candidates = input.playerBoard.filter(\r\n\t\t\t(e) => hasValidDeathrattle(e, input.playerEntity, input.gameState) && !e.reborn,\r\n\t\t);\r\n\t\tconst targets = pickMultipleRandom(candidates, numberOfTargets);\r\n\t\tfor (const target of targets) {\r\n\t\t\tupdateReborn(target, true, input.playerBoard, input.playerEntity, input.opponentEntity, input.gameState);\r\n\t\t\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.playerBoard,\r\n\t\t\t\tinput.playerEntity,\r\n\t\t\t\tinput.opponentEntity,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TheGladIator = void 0;
|
|
4
|
+
const stats_1 = require("../../../simulation/stats");
|
|
5
|
+
exports.TheGladIator = {
|
|
6
|
+
cardIds: ["BG27_025", "BG27_025_G"],
|
|
7
|
+
onTavernSpellCast: (minion, input) => {
|
|
8
|
+
const mult = minion.cardId === "BG27_025_G" ? 2 : 1;
|
|
9
|
+
(0, stats_1.modifyStats)(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=the-glad-iator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"the-glad-iator.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/the-glad-iator.ts"],"names":[],"mappings":";;;AAEA,qDAAwD;AAG3C,QAAA,YAAY,GAA0B;IAClD,OAAO,EAAE,0BAAgE;IACzE,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAA,mBAAW,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACpF,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const TheGladIator: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TheGladIator_BG27_025, CardIds.TheGladIator_BG27_025_G],\r\n\tonTavernSpellCast: (minion: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TheGladIator_BG27_025_G ? 2 : 1;\r\n\t\tmodifyStats(minion, minion, 1 * mult, 0, input.board, input.hero, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -15,7 +15,7 @@ exports.TimewarpedElectron = {
|
|
|
15
15
|
const targets = input.board.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.MECH, input.gameState.anomalies, input.gameState.allCards));
|
|
16
16
|
for (const target of targets) {
|
|
17
17
|
for (let i = 0; i < mult; i++) {
|
|
18
|
-
(0, magnetize_1.magnetizeToTarget)(target, entity, "BG31_171t", input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
18
|
+
(0, magnetize_1.magnetizeToTarget)([target], entity, ["BG31_171t"], input.board, input.hero, input.otherBoard, input.otherHero, input.gameState);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timewarped-electron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-electron.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,sCAAwF;IACjG,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,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,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,6BAAiB,EAChB,MAAM,
|
|
1
|
+
{"version":3,"file":"timewarped-electron.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-electron.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,6DAAkE;AAClE,0CAAiD;AAGpC,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,sCAAwF;IACjG,oBAAoB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACpE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,cAAc,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,CAAC;QACnD,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,EAAE;YACpC,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,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9F,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC9B,IAAA,6BAAiB,EAChB,CAAC,MAAM,CAAC,EACR,MAAM,EACN,aAA+D,EAC/D,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,CACf,CAAC;iBACF;aACD;SACD;IACF,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 { magnetizeToTarget } from '../../../simulation/magnetize';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TimewarpedElectron: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TimewarpedElectron_BG34_Giant_610, CardIds.TimewarpedElectron_BG34_Giant_610_G],\r\n\tafterTavernSpellCast: (entity: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedElectron_BG34_Giant_610_G ? 2 : 1;\r\n\t\tentity.scriptDataNum1 = entity.scriptDataNum1 ?? 0;\r\n\t\tentity.scriptDataNum1++;\r\n\t\tif (entity.scriptDataNum1 % 2 === 0) {\r\n\t\t\tconst targets = input.board.filter((e) =>\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.MECH, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t\t);\r\n\t\t\tfor (const target of targets) {\r\n\t\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\t\tmagnetizeToTarget(\r\n\t\t\t\t\t\t[target],\r\n\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\t[CardIds.MoonsteelJuggernaut_MoonsteelSatelliteToken_BG31_171t],\r\n\t\t\t\t\t\tinput.board,\r\n\t\t\t\t\t\tinput.hero,\r\n\t\t\t\t\t\tinput.otherBoard,\r\n\t\t\t\t\t\tinput.otherHero,\r\n\t\t\t\t\t\tinput.gameState,\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,8 +8,8 @@ exports.TimewarpedImmortal = {
|
|
|
8
8
|
startOfCombat: (minion, input) => {
|
|
9
9
|
const multiplier = minion.cardId === "BG34_Giant_597_G" ? 2 : 1;
|
|
10
10
|
const neighbours = (0, attack_1.getNeighbours)(input.playerBoard, minion);
|
|
11
|
-
const neighboursAttack = neighbours.map((entity) => entity.
|
|
12
|
-
const neighboursHealth = neighbours.map((entity) => entity.
|
|
11
|
+
const neighboursAttack = neighbours.map((entity) => entity.maxAttack).reduce((a, b) => a + b, 0);
|
|
12
|
+
const neighboursHealth = neighbours.map((entity) => entity.maxHealth).reduce((a, b) => a + b, 0);
|
|
13
13
|
(0, stats_1.modifyStats)(minion, minion, multiplier * neighboursAttack, multiplier * neighboursHealth, input.playerBoard, input.playerEntity, input.gameState);
|
|
14
14
|
return true;
|
|
15
15
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timewarped-immortal.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-immortal.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,sCAAwF;IACjG,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"timewarped-immortal.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-immortal.ts"],"names":[],"mappings":";;;AAEA,uDAA2D;AAE3D,qDAAwD;AAG3C,QAAA,kBAAkB,GAAsB;IACpD,OAAO,EAAE,sCAAwF;IACjG,aAAa,EAAE,CAAC,MAAmB,EAAE,KAAe,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjG,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACjG,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,UAAU,GAAG,gBAAgB,EAC7B,UAAU,GAAG,gBAAgB,EAC7B,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { getNeighbours } from '../../../simulation/attack';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const TimewarpedImmortal: StartOfCombatCard = {\r\n\tcardIds: [CardIds.TimewarpedImmortal_BG34_Giant_597, CardIds.TimewarpedImmortal_BG34_Giant_597_G],\r\n\tstartOfCombat: (minion: BoardEntity, input: SoCInput) => {\r\n\t\tconst multiplier = minion.cardId === CardIds.TimewarpedImmortal_BG34_Giant_597_G ? 2 : 1;\r\n\t\tconst neighbours = getNeighbours(input.playerBoard, minion);\r\n\t\tconst neighboursAttack = neighbours.map((entity) => entity.maxAttack).reduce((a, b) => a + b, 0);\r\n\t\tconst neighboursHealth = neighbours.map((entity) => entity.maxHealth).reduce((a, b) => a + b, 0);\r\n\t\tmodifyStats(\r\n\t\t\tminion,\r\n\t\t\tminion,\r\n\t\t\tmultiplier * neighboursAttack,\r\n\t\t\tmultiplier * neighboursHealth,\r\n\t\t\tinput.playerBoard,\r\n\t\t\tinput.playerEntity,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimewarpedInterpreter = void 0;
|
|
4
|
+
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
4
5
|
const utils_1 = require("../../../utils");
|
|
5
6
|
exports.TimewarpedInterpreter = {
|
|
6
7
|
cardIds: ["BG34_Giant_120", "BG34_Giant_120_G"],
|
|
7
8
|
onBeforeMagnetize: (entity, input) => {
|
|
8
9
|
const mult = entity.cardId === "BG34_Giant_120_G" ? 2 : 1;
|
|
9
|
-
(0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 3 * mult, 1 * mult, input.gameState);
|
|
10
|
+
(0, utils_1.addStatsToBoard)(entity, input.board, input.hero, 3 * mult, 1 * mult, input.gameState, reference_data_1.Race[reference_data_1.Race.MECH]);
|
|
10
11
|
},
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=timewarped-interpreter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timewarped-interpreter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-interpreter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"timewarped-interpreter.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-interpreter.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,0CAAiD;AAGpC,QAAA,qBAAqB,GAA0B;IAC3D,OAAO,EAAE,sCAA8F;IACvG,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAA6B,EAAE,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAmD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,qBAAI,CAAC,qBAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,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 { OnBeforeMagnetizeInput } from '../../../simulation/magnetize';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { OnBeforeMagnetizeCard } from '../../card.interface';\r\n\r\nexport const TimewarpedInterpreter: OnBeforeMagnetizeCard = {\r\n\tcardIds: [CardIds.TimewarpedInterpreter_BG34_Giant_120, CardIds.TimewarpedInterpreter_BG34_Giant_120_G],\r\n\tonBeforeMagnetize: (entity: BoardEntity, input: OnBeforeMagnetizeInput) => {\r\n\t\tconst mult = entity.cardId === CardIds.TimewarpedInterpreter_BG34_Giant_120_G ? 2 : 1;\r\n\t\taddStatsToBoard(entity, input.board, input.hero, 3 * mult, 1 * mult, input.gameState, Race[Race.MECH]);\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,6 +5,9 @@ const stats_1 = require("../../../simulation/stats");
|
|
|
5
5
|
exports.TimewarpedMurcules = {
|
|
6
6
|
cardIds: ["BG34_Giant_207", "BG34_Giant_207_G"],
|
|
7
7
|
onMinionKilled: (minion, input) => {
|
|
8
|
+
if (input.killer !== minion || !input.killerIsAttacking) {
|
|
9
|
+
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
10
|
+
}
|
|
8
11
|
const mult = minion.cardId === "BG34_Giant_207_G" ? 2 : 1;
|
|
9
12
|
const murculesTarget = input.attackingHero.hand.filter((e) => !!(e === null || e === void 0 ? void 0 : e.cardId) && !!e.maxHealth)[0];
|
|
10
13
|
if (murculesTarget) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timewarped-murcules.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-murcules.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,kBAAkB,GAAuB;IACrD,OAAO,EAAE,sCAAwF;IACjG,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,cAAc,EAAE;YACnB,IAAA,mBAAW,EACV,cAAc,EACd,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMurcules: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.TimewarpedMurcules_BG34_Giant_207, CardIds.TimewarpedMurcules_BG34_Giant_207_G],\r\n\tonMinionKilled: (minion: BoardEntity, input: OnMinionKilledInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedMurcules_BG34_Giant_207_G ? 2 : 1;\r\n\t\tconst murculesTarget = input.attackingHero.hand.filter((e) => !!e?.cardId && !!e.maxHealth)[0];\r\n\t\tif (murculesTarget) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tmurculesTarget,\r\n\t\t\t\tminion,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"timewarped-murcules.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/timewarped-murcules.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,kBAAkB,GAAuB;IACrD,OAAO,EAAE,sCAAwF;IACjG,cAAc,EAAE,CAAC,MAAmB,EAAE,KAA0B,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACxD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;SACtD;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,uBAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,cAAc,EAAE;YACnB,IAAA,mBAAW,EACV,cAAc,EACd,MAAM,EACN,CAAC,GAAG,IAAI,EACR,CAAC,GAAG,IAAI,EACR,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnMinionKilledInput } from '../../../simulation/attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { OnMinionKilledCard } from '../../card.interface';\r\n\r\nexport const TimewarpedMurcules: OnMinionKilledCard = {\r\n\tcardIds: [CardIds.TimewarpedMurcules_BG34_Giant_207, CardIds.TimewarpedMurcules_BG34_Giant_207_G],\r\n\tonMinionKilled: (minion: BoardEntity, input: OnMinionKilledInput) => {\r\n\t\tif (input.killer !== minion || !input.killerIsAttacking) {\r\n\t\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t\t}\r\n\r\n\t\tconst mult = minion.cardId === CardIds.TimewarpedMurcules_BG34_Giant_207_G ? 2 : 1;\r\n\t\tconst murculesTarget = input.attackingHero.hand.filter((e) => !!e?.cardId && !!e.maxHealth)[0];\r\n\t\tif (murculesTarget) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tmurculesTarget,\r\n\t\t\t\tminion,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\t3 * mult,\r\n\t\t\t\tinput.attackingBoard,\r\n\t\t\t\tinput.attackingHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|