@firestone-hs/simulate-bgs-battle 1.1.718 → 1.1.719
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.js +1 -1
- package/dist/cards/cards-data.js.map +1 -1
- package/dist/cards/impl/bg-spell/butchering.js +1 -1
- package/dist/cards/impl/bg-spell/butchering.js.map +1 -1
- package/dist/cards/impl/minion/brazen-buccaneer.js +1 -1
- package/dist/cards/impl/minion/brazen-buccaneer.js.map +1 -1
- package/dist/cards/impl/minion/bronze-chromadrake.js +1 -1
- package/dist/cards/impl/minion/bronze-chromadrake.js.map +1 -1
- package/dist/cards/impl/minion/dead-sea-ravager.js +1 -1
- package/dist/cards/impl/minion/dead-sea-ravager.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/green-chromadrake.js +1 -1
- package/dist/cards/impl/minion/green-chromadrake.js.map +1 -1
- package/dist/cards/impl/minion/nalaa-the-redeemer.js +2 -2
- package/dist/cards/impl/minion/nalaa-the-redeemer.js.map +1 -1
- package/dist/cards/impl/minion/skeletal-strafer.js +1 -1
- package/dist/cards/impl/minion/skeletal-strafer.js.map +1 -1
- package/dist/cards/impl/trinket/artisanal-urn.js +1 -1
- package/dist/cards/impl/trinket/artisanal-urn.js.map +1 -1
- package/dist/cards/impl/trinket/bewitched-ribbon.js +1 -1
- package/dist/cards/impl/trinket/bewitched-ribbon.js.map +1 -1
- package/dist/cards/impl/trinket/copper-coil.js +2 -2
- package/dist/cards/impl/trinket/copper-coil.js.map +1 -1
- package/dist/cards/impl/trinket/gilnean-thorned-rose.js +1 -1
- package/dist/cards/impl/trinket/gilnean-thorned-rose.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/cards/impl/trinket/sky-golem-portrait-enchantment.js +1 -1
- package/dist/cards/impl/trinket/sky-golem-portrait-enchantment.js.map +1 -1
- package/dist/cards/impl/trinket/stormcoil-sticker.js +1 -1
- package/dist/cards/impl/trinket/stormcoil-sticker.js.map +1 -1
- package/dist/cards/impl/trinket/tiger-carving.js +4 -3
- package/dist/cards/impl/trinket/tiger-carving.js.map +1 -1
- package/package.json +1 -1
package/dist/cards/cards-data.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards-data.js","sourceRoot":"","sources":["../../src/cards/cards-data.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n\tAllCardsService,\r\n\tCardType,\r\n\tGameTag,\r\n\tisBattlegroundsCard,\r\n\tRace,\r\n\tReferenceCard,\r\n\tSpellSchool,\r\n} from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { debugState } from '../debug-state';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { groupByFunction, pickRandom } from '../services/utils';\r\nimport { getRaceEnum, hasMechanic, isCorrectTribe, isVolumizer } from '../utils';\r\nimport { hasAvenge, hasDefaultScriptDataNum } from './card.interface';\r\nimport { cardMappings } from './impl/_card-mappings';\r\n\r\nexport const isWhelp = (cardId: string, allCards: AllCardsService): boolean => {\r\n\treturn allCards.getCard(cardId).mechanics?.includes(GameTag[GameTag.WHELP]);\r\n};\r\n\r\nexport const validBonusKeywords = [\r\n\tGameTag.TAUNT,\r\n\tGameTag.DIVINE_SHIELD,\r\n\tGameTag.VENOMOUS,\r\n\tGameTag.POISONOUS,\r\n\tGameTag.WINDFURY,\r\n\tGameTag.STEALTH,\r\n\tGameTag.REBORN,\r\n];\r\n\r\nexport const hasKeyword = (entity: BoardEntity, keyword: GameTag) => {\r\n\tswitch (keyword) {\r\n\t\tcase GameTag.TAUNT:\r\n\t\t\treturn entity.taunt;\r\n\t\tcase GameTag.DIVINE_SHIELD:\r\n\t\t\treturn entity.divineShield;\r\n\t\tcase GameTag.VENOMOUS:\r\n\t\t\treturn entity.venomous;\r\n\t\tcase GameTag.WINDFURY:\r\n\t\t\treturn entity.windfury;\r\n\t\tcase GameTag.STEALTH:\r\n\t\t\treturn entity.stealth;\r\n\t\tcase GameTag.REBORN:\r\n\t\t\treturn entity.reborn;\r\n\t\tdefault:\r\n\t\t\treturn false;\r\n\t}\r\n};\r\n\r\nexport class CardsData {\r\n\tpublic ghastcoilerSpawns: readonly string[];\r\n\tpublic impMamaSpawns: readonly string[];\r\n\tpublic demonSpawns: readonly string[];\r\n\tpublic gentleDjinniSpawns: readonly string[];\r\n\tpublic kilrekSpawns: readonly string[];\r\n\tpublic battlecryMinions: readonly string[];\r\n\tpublic deathrattleMinions: readonly string[];\r\n\tpublic pirateSpawns: readonly string[];\r\n\tpublic beastSpawns: readonly string[];\r\n\tpublic scrapScraperSpawns: readonly string[];\r\n\t/** Tavern spells with BACON_BOUNTY (Proud Privateer, Lost City Looter). */\r\n\tpublic bountyTavernSpellIds: readonly string[];\r\n\tpublic endOfTurnMinions: readonly string[];\r\n\tpublic magneticMinions: readonly ReferenceCard[];\r\n\tpublic spellcraftPool: readonly ReferenceCard[];\r\n\r\n\tpublic putricidePool1: readonly string[];\r\n\tpublic putricidePool2: readonly string[];\r\n\tpublic putridicePool2ForEternalSummoner: readonly string[];\r\n\r\n\tprivate pool: readonly ReferenceCard[];\r\n\tprivate minionsForTier: { [key: string]: readonly ReferenceCard[] };\r\n\r\n\tconstructor(private readonly allCards: AllCardsService, init = true) {\r\n\t\tif (init) {\r\n\t\t\tthis.inititialize();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic inititialize(validTribes?: readonly Race[], anomalies?: readonly string[]): void {\r\n\t\tconst poolWithGolden = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => isBattlegroundsCard(card))\r\n\t\t\t// Premiums are not in bacon pool\r\n\t\t\t.filter((card) => card.isBaconPool || this.allCards.getCard(card.battlegroundsNormalDbfId)?.isBaconPool)\r\n\t\t\t.filter((card) => card.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((card) => !hasMechanic(card, GameTag.BACON_BUDDY))\r\n\t\t\t.filter((card) => card.set !== 'Vanilla')\r\n\t\t\t.filter((card) =>\r\n\t\t\t\tanomalies?.includes(CardIds.BigLeague_BG27_Anomaly_100)\r\n\t\t\t\t\t? card.techLevel >= 3\r\n\t\t\t\t\t: anomalies?.includes(CardIds.LittleLeague_BG27_Anomaly_800)\r\n\t\t\t\t\t? card.techLevel <= 4\r\n\t\t\t\t\t: true,\r\n\t\t\t);\r\n\t\tthis.pool = poolWithGolden\r\n\t\t\t.filter((card) => this.isValidTribe(validTribes, card.races))\r\n\t\t\t.filter((card) =>\r\n\t\t\t\tanomalies?.includes(CardIds.TheGoldenArena_BG27_Anomaly_801)\r\n\t\t\t\t\t? this.isGolden(card)\r\n\t\t\t\t\t: !this.isGolden(card),\r\n\t\t\t);\r\n\t\tthis.minionsForTier = groupByFunction((card: ReferenceCard) => card.techLevel)(this.pool);\r\n\t\tthis.ghastcoilerSpawns = this.pool\r\n\t\t\t.filter((card) => card.id !== 'BGS_008')\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.DEATHRATTLE))\r\n\t\t\t.filter((card) => this.isValidTribe(validTribes, card.races))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.demonSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.DEMON)).map((card) => card.id);\r\n\t\tthis.impMamaSpawns = this.demonSpawns.filter((cardId) => cardId !== CardIds.ImpMama_BGS_044);\r\n\t\tthis.gentleDjinniSpawns = this.pool\r\n\t\t\t.filter((card) => isCorrectTribe(card.races, Race.ELEMENTAL))\r\n\t\t\t.filter((card) => card.id !== CardIds.GentleDjinni_BGS_121)\r\n\t\t\t.map((card) => card.id);\r\n\t\t// FIXME: just spawn a random undead instead of an Undead Creation\r\n\t\t// this.festergutSpawns = pool\r\n\t\t// \t.filter((card) => !this.isGolden(card))\r\n\t\t// \t.filter((card) => isCorrectTribe(card.races, Race.UNDEAD))\r\n\t\t// \t.filter((card) => card.id !== CardIds.Festergut_BG25_HERO_100_Buddy)\r\n\t\t// \t// .filter((card) => REMOVED_CARD_IDS.indexOf(card.id) === -1)\r\n\t\t// \t.map((card) => card.id);\r\n\t\tthis.kilrekSpawns = this.pool\r\n\t\t\t.filter((card) => isCorrectTribe(card.races, Race.DEMON))\r\n\t\t\t.filter((card) => card.id !== CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.battlecryMinions = this.pool.filter((card) => hasMechanic(card, GameTag.BATTLECRY)).map((card) => card.id);\r\n\t\tthis.deathrattleMinions = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.DEATHRATTLE))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.pirateSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.PIRATE)).map((card) => card.id);\r\n\t\tthis.beastSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.BEAST)).map((card) => card.id);\r\n\t\tthis.scrapScraperSpawns = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.MAGNETIC))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.endOfTurnMinions = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.END_OF_TURN))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.magneticMinions = this.pool.filter((card) => hasMechanic(card, GameTag.MAGNETIC));\r\n\t\tthis.spellcraftPool = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((c) => c.spellSchool === SpellSchool[SpellSchool.SPELLCRAFT])\r\n\t\t\t.filter((c) => !c.premium)\r\n\t\t\t.filter((c) => c.set === 'Battlegrounds')\r\n\t\t\t// Remove unimplemented ones (mainly spellcrafts that don't have sense in combat)\r\n\t\t\t.filter((c) => cardMappings[c.id] != null);\r\n\r\n\t\tthis.bountyTavernSpellIds = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((c) => c.set === 'Battlegrounds' && !c.premium)\r\n\t\t\t.filter((c) => c.type?.toUpperCase() === CardType[CardType.SPELL])\r\n\t\t\t.filter((c) => c.mechanics?.includes('BACON_BOUNTY'))\r\n\t\t\t.filter((c) => cardMappings[c.id] != null)\r\n\t\t\t.map((c) => c.id);\r\n\r\n\t\tthis.putricidePool1 = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool1)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.putricidePool2 = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool2)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.putridicePool2ForEternalSummoner = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool2)\r\n\t\t\t.filter((card) => !card.battlegroundsPutridiceSummonerExclusion)\r\n\t\t\t.map((card) => card.id);\r\n\t}\r\n\r\n\tpublic avengeValue(cardId: string): number {\r\n\t\tconst avengeImpl = cardMappings[cardId];\r\n\t\tif (hasAvenge(avengeImpl)) {\r\n\t\t\treturn avengeImpl.baseAvengeValue(cardId);\r\n\t\t}\r\n\t\tswitch (cardId) {\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014_G:\r\n\t\t\t\t// case CardIds.IceSickle:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.MechanoTank_BG21_023:\r\n\t\t\tcase CardIds.MechanoTank_BG21_023_G:\r\n\t\t\tcase CardIds.PalescaleCrocolisk_BG21_001:\r\n\t\t\tcase CardIds.PalescaleCrocolisk_BG21_001_G:\r\n\t\t\tcase CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy:\r\n\t\t\tcase CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy_G:\r\n\t\t\tcase CardIds.Bristlebach_BG26_157:\r\n\t\t\tcase CardIds.Bristlebach_BG26_157_G:\r\n\t\t\t\treturn 2;\r\n\t\t\tcase CardIds.BoomSquad_BG27_Reward_502:\r\n\t\t\tcase CardIds.TremblingTrolley_BG28_967:\r\n\t\t\tcase CardIds.TremblingTrolley_BG28_967_G:\r\n\t\t\t\treturn 3;\r\n\t\t\tcase CardIds.Onyxia_Broodmother:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\t\t// case CardIds.Sisefin_BG21_009:\r\n\t\t\t// case CardIds.Sisefin_BG21_009_G:\r\n\t\t\t// case CardIds.TonyTwoTusk_BG21_031:\r\n\t\t\t// case CardIds.TonyTwoTusk_BG21_031_G:\r\n\t\t\t// case CardIds.ScrapScraper_BG26_148:\r\n\t\t\t// case CardIds.ScrapScraper_BG26_148_G:\r\n\t\t\tcase CardIds.RelentlessSentry_BG25_003:\r\n\t\t\tcase CardIds.RelentlessSentry_BG25_003_G:\r\n\t\t\tcase CardIds.PhaerixWrathOfTheSun_BG28_403:\r\n\t\t\tcase CardIds.PhaerixWrathOfTheSun_BG28_403_G:\r\n\t\t\tcase CardIds.TumblingDisaster_BG28_Reward_505:\r\n\t\t\tcase CardIds.CycleOfEnergy_BG28_Reward_504:\r\n\t\t\tcase CardIds.AugmentedLaborer_BG28_740:\r\n\t\t\tcase CardIds.AugmentedLaborer_BG28_740_G:\r\n\t\t\tcase CardIds.MurglMkIi_BG29_991:\r\n\t\t\tcase CardIds.MurglMkIi_BG29_991_G:\r\n\t\t\t\treturn 4;\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010:\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010_G:\r\n\t\t\tcase CardIds.StaffOfTheScourge_BG30_MagicItem_437:\r\n\t\t\t\treturn 5;\r\n\t\t\tcase CardIds.StableAmalgamation_BG28_Reward_518:\r\n\t\t\t\treturn 7;\r\n\t\t\tcase CardIds.BleedingHeart_BG30_MagicItem_713:\r\n\t\t\t\treturn 9;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tpublic defaultScriptDataNum(cardId: string): number {\r\n\t\tconst defaultScriptDataNumImpl = cardMappings[cardId];\r\n\t\tif (hasDefaultScriptDataNum(defaultScriptDataNumImpl)) {\r\n\t\t\treturn defaultScriptDataNumImpl.defaultScriptDataNum(cardId);\r\n\t\t}\r\n\t\tswitch (cardId) {\r\n\t\t\tcase CardIds.TumblingDisaster_BG28_Reward_505:\r\n\t\t\tcase CardIds.TwinSkyLanterns_BG30_MagicItem_822:\r\n\t\t\tcase CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2:\r\n\t\t\tcase CardIds.BoomController_BG30_MagicItem_440:\r\n\t\t\tcase CardIds.AllianceKeychain_BG30_MagicItem_433:\r\n\t\t\tcase CardIds.AllianceKeychain_AllianceKeychainToken_BG30_MagicItem_433t:\r\n\t\t\tcase CardIds.DeathlyPhylactery_BG30_MagicItem_700:\r\n\t\t\tcase CardIds.PromoPortrait_BG30_MagicItem_918:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.BloodGolemSticker_BG30_MagicItem_442:\r\n\t\t\tcase CardIds.MechagonAdapter_BG30_MagicItem_910:\r\n\t\t\tcase CardIds.FaerieDragonScale_BG32_MagicItem_363:\r\n\t\t\t\treturn 3;\r\n\t\t\tdefault:\r\n\t\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getTavernLevel(cardId: string): number {\r\n\t\treturn this.allCards.getCard(cardId).techLevel ?? 1;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTavernTier(tavernTier: number): string {\r\n\t\t// Tzvern tier can be undefined for hero-power specific tokens, like the Amalgam, or when\r\n\t\t// for some reason tokens end up in the shop. For now, defaulting to 1 for tavern\r\n\t\t// level seems to work in all cases\r\n\t\tconst minionsForTier = this.minionsForTier[tavernTier ?? 1];\r\n\t\tif (!minionsForTier?.length) {\r\n\t\t\tconsole.error('incorrect minions for tier', tavernTier);\r\n\t\t}\r\n\t\treturn pickRandom(minionsForTier)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForMinTavernTier(tavernTier: number): string {\r\n\t\tconst minionsForTier = this.pool.filter((m) => m.techLevel >= tavernTier);\r\n\t\tif (!minionsForTier?.length) {\r\n\t\t\tconsole.error('incorrect minions for tier', tavernTier);\r\n\t\t}\r\n\t\treturn pickRandom(minionsForTier)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMechToMagnetize(tavernLimitUpper: number): string {\r\n\t\tconst magneticMechs = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.MODULAR));\r\n\t\tconst pool = magneticMechs.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMagneticVolumizer(\r\n\t\tplayerEntity: BgsPlayerEntity,\r\n\t\tanomalies: readonly string[],\r\n\t\ttavernLimitUpper: number,\r\n\t\tsourceEntity?: BoardEntity,\r\n\t\ttargetEntity?: BoardEntity,\r\n\t): string {\r\n\t\tconst magneticVolumizers = this.magneticMinions.filter((m) =>\r\n\t\t\tisVolumizer(m.id, playerEntity, anomalies, this.allCards),\r\n\t\t);\r\n\t\tconst pool = magneticVolumizers.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\r\n\t\tif (sourceEntity && targetEntity && debugState.active && debugState.forcedRandomPicks.length > 0) {\r\n\t\t\tconst forced = debugState.forcedRandomPicks.find(\r\n\t\t\t\t(p) =>\r\n\t\t\t\t\tdebugState.isCorrectEntity(p.source, sourceEntity) &&\r\n\t\t\t\t\tdebugState.isCorrectEntity(p.target, targetEntity),\r\n\t\t\t);\r\n\t\t\tif (forced?.chosenCardId) {\r\n\t\t\t\tconst inPool = pool.some((m) => m.id === forced.chosenCardId);\r\n\t\t\t\tif (inPool) {\r\n\t\t\t\t\tdebugState.forcedRandomPicks = debugState.forcedRandomPicks.filter((p) => p !== forced);\r\n\t\t\t\t\treturn forced.chosenCardId;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst result = pickRandom(pool)?.id;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic getRandomDivineShield(tavernLimitUpper: number) {\r\n\t\tconst divineShieldPool = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.DIVINE_SHIELD));\r\n\t\tconst pool = divineShieldPool.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomRally(tavernLimitUpper: number) {\r\n\t\tconst targetPool = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.BACON_RALLY));\r\n\t\tconst pool = targetPool.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTribe(\r\n\t\ttribe: Race,\r\n\t\ttavernLimitUpper: number,\r\n\t\texcludedCards: readonly string[] = [],\r\n\t): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => this.isValidTribe([tribe], m.races, false))\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper)\r\n\t\t\t.filter((m) => !excludedCards.includes(m.id));\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomProtossMinion(tavernLimitUpper: number): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => m.mechanics?.includes(GameTag[GameTag.PROTOSS]))\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomSpellcraft(options: { maxTavernTier?: number }): string {\r\n\t\tconst pool = this.spellcraftPool.filter((c) =>\r\n\t\t\toptions.maxTavernTier ? c.techLevel <= options.maxTavernTier : true,\r\n\t\t);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic isGolden(card: ReferenceCard): boolean {\r\n\t\treturn card.premium;\r\n\t}\r\n\r\n\tprivate isValidTribe(validTribes: readonly Race[], cardRaces: readonly string[], allowEmptyRaces = true): boolean {\r\n\t\tif (!cardRaces?.length && allowEmptyRaces) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn (cardRaces ?? [])\r\n\t\t\t.map((race) => getRaceEnum(race))\r\n\t\t\t.some((raceEnum) => raceEnum === Race.ALL || !validTribes?.length || validTribes.includes(raceEnum));\r\n\t}\r\n\r\n\tpublic getRandomTavernSpell(options?: { exactTavernTier?: number; maxTavernTier?: number }): string {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/** BG 2-cost spells that have simulator support (cardMappings). */\r\n\tpublic getTwoCostBattlegroundsSpellIdsImplemented(): string[] {\r\n\t\treturn this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter(\r\n\t\t\t\t(c) =>\r\n\t\t\t\t\tc.set === 'Battlegrounds' &&\r\n\t\t\t\t\t!c.premium &&\r\n\t\t\t\t\t(c.cost ?? 0) === 2 &&\r\n\t\t\t\t\tc.type?.toUpperCase() === CardType[CardType.SPELL] &&\r\n\t\t\t\t\tcardMappings[c.id] != null,\r\n\t\t\t)\r\n\t\t\t.map((c) => c.id);\r\n\t}\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"cards-data.js","sourceRoot":"","sources":["../../src/cards/cards-data.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n\tAllCardsService,\r\n\tCardType,\r\n\tGameTag,\r\n\tisBattlegroundsCard,\r\n\tRace,\r\n\tReferenceCard,\r\n\tSpellSchool,\r\n} from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { debugState } from '../debug-state';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { groupByFunction, pickRandom } from '../services/utils';\r\nimport { getRaceEnum, hasMechanic, isCorrectTribe, isVolumizer } from '../utils';\r\nimport { hasAvenge, hasDefaultScriptDataNum } from './card.interface';\r\nimport { cardMappings } from './impl/_card-mappings';\r\n\r\nexport const isWhelp = (cardId: string, allCards: AllCardsService): boolean => {\r\n\treturn allCards.getCard(cardId).mechanics?.includes(GameTag[GameTag.WHELP]);\r\n};\r\n\r\nexport const validBonusKeywords = [\r\n\tGameTag.TAUNT,\r\n\tGameTag.DIVINE_SHIELD,\r\n\tGameTag.VENOMOUS,\r\n\tGameTag.POISONOUS,\r\n\tGameTag.WINDFURY,\r\n\tGameTag.STEALTH,\r\n\tGameTag.REBORN,\r\n];\r\n\r\nexport const hasKeyword = (entity: BoardEntity, keyword: GameTag) => {\r\n\tswitch (keyword) {\r\n\t\tcase GameTag.TAUNT:\r\n\t\t\treturn entity.taunt;\r\n\t\tcase GameTag.DIVINE_SHIELD:\r\n\t\t\treturn entity.divineShield;\r\n\t\tcase GameTag.VENOMOUS:\r\n\t\t\treturn entity.venomous;\r\n\t\tcase GameTag.WINDFURY:\r\n\t\t\treturn entity.windfury;\r\n\t\tcase GameTag.STEALTH:\r\n\t\t\treturn entity.stealth;\r\n\t\tcase GameTag.REBORN:\r\n\t\t\treturn entity.reborn;\r\n\t\tdefault:\r\n\t\t\treturn false;\r\n\t}\r\n};\r\n\r\nexport class CardsData {\r\n\tpublic ghastcoilerSpawns: readonly string[];\r\n\tpublic impMamaSpawns: readonly string[];\r\n\tpublic demonSpawns: readonly string[];\r\n\tpublic gentleDjinniSpawns: readonly string[];\r\n\tpublic kilrekSpawns: readonly string[];\r\n\tpublic battlecryMinions: readonly string[];\r\n\tpublic deathrattleMinions: readonly string[];\r\n\tpublic pirateSpawns: readonly string[];\r\n\tpublic beastSpawns: readonly string[];\r\n\tpublic scrapScraperSpawns: readonly string[];\r\n\t/** Tavern spells with BACON_BOUNTY (Proud Privateer, Lost City Looter). */\r\n\tpublic bountyTavernSpellIds: readonly string[];\r\n\tpublic endOfTurnMinions: readonly string[];\r\n\tpublic magneticMinions: readonly ReferenceCard[];\r\n\tpublic spellcraftPool: readonly ReferenceCard[];\r\n\r\n\tpublic putricidePool1: readonly string[];\r\n\tpublic putricidePool2: readonly string[];\r\n\tpublic putridicePool2ForEternalSummoner: readonly string[];\r\n\r\n\tprivate pool: readonly ReferenceCard[];\r\n\tprivate minionsForTier: { [key: string]: readonly ReferenceCard[] };\r\n\r\n\tconstructor(private readonly allCards: AllCardsService, init = true) {\r\n\t\tif (init) {\r\n\t\t\tthis.inititialize();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic inititialize(validTribes?: readonly Race[], anomalies?: readonly string[]): void {\r\n\t\tconst poolWithGolden = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => isBattlegroundsCard(card))\r\n\t\t\t// Premiums are not in bacon pool\r\n\t\t\t.filter((card) => card.isBaconPool || this.allCards.getCard(card.battlegroundsNormalDbfId)?.isBaconPool)\r\n\t\t\t.filter((card) => card.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((card) => !hasMechanic(card, GameTag.BACON_BUDDY))\r\n\t\t\t.filter((card) => card.set !== 'Vanilla')\r\n\t\t\t.filter((card) =>\r\n\t\t\t\tanomalies?.includes(CardIds.BigLeague_BG27_Anomaly_100)\r\n\t\t\t\t\t? card.techLevel >= 3\r\n\t\t\t\t\t: anomalies?.includes(CardIds.LittleLeague_BG27_Anomaly_800)\r\n\t\t\t\t\t? card.techLevel <= 4\r\n\t\t\t\t\t: true,\r\n\t\t\t);\r\n\t\tthis.pool = poolWithGolden\r\n\t\t\t.filter((card) => this.isValidTribe(validTribes, card.races))\r\n\t\t\t.filter((card) =>\r\n\t\t\t\tanomalies?.includes(CardIds.TheGoldenArena_BG27_Anomaly_801)\r\n\t\t\t\t\t? this.isGolden(card)\r\n\t\t\t\t\t: !this.isGolden(card),\r\n\t\t\t);\r\n\t\tthis.minionsForTier = groupByFunction((card: ReferenceCard) => card.techLevel)(this.pool);\r\n\t\tthis.ghastcoilerSpawns = this.pool\r\n\t\t\t.filter((card) => card.id !== 'BGS_008')\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.DEATHRATTLE))\r\n\t\t\t.filter((card) => this.isValidTribe(validTribes, card.races))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.demonSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.DEMON)).map((card) => card.id);\r\n\t\tthis.impMamaSpawns = this.demonSpawns.filter((cardId) => cardId !== CardIds.ImpMama_BGS_044);\r\n\t\tthis.gentleDjinniSpawns = this.pool\r\n\t\t\t.filter((card) => isCorrectTribe(card.races, Race.ELEMENTAL))\r\n\t\t\t.filter((card) => card.id !== CardIds.GentleDjinni_BGS_121)\r\n\t\t\t.map((card) => card.id);\r\n\t\t// FIXME: just spawn a random undead instead of an Undead Creation\r\n\t\t// this.festergutSpawns = pool\r\n\t\t// \t.filter((card) => !this.isGolden(card))\r\n\t\t// \t.filter((card) => isCorrectTribe(card.races, Race.UNDEAD))\r\n\t\t// \t.filter((card) => card.id !== CardIds.Festergut_BG25_HERO_100_Buddy)\r\n\t\t// \t// .filter((card) => REMOVED_CARD_IDS.indexOf(card.id) === -1)\r\n\t\t// \t.map((card) => card.id);\r\n\t\tthis.kilrekSpawns = this.pool\r\n\t\t\t.filter((card) => isCorrectTribe(card.races, Race.DEMON))\r\n\t\t\t.filter((card) => card.id !== CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.battlecryMinions = this.pool.filter((card) => hasMechanic(card, GameTag.BATTLECRY)).map((card) => card.id);\r\n\t\tthis.deathrattleMinions = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.DEATHRATTLE))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.pirateSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.PIRATE)).map((card) => card.id);\r\n\t\tthis.beastSpawns = this.pool.filter((card) => isCorrectTribe(card.races, Race.BEAST)).map((card) => card.id);\r\n\t\tthis.scrapScraperSpawns = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.MAGNETIC))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.endOfTurnMinions = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, GameTag.END_OF_TURN))\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.magneticMinions = this.pool.filter((card) => hasMechanic(card, GameTag.MAGNETIC));\r\n\t\tthis.spellcraftPool = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((c) => c.spellSchool === SpellSchool[SpellSchool.SPELLCRAFT])\r\n\t\t\t.filter((c) => !c.premium)\r\n\t\t\t.filter((c) => c.set === 'Battlegrounds')\r\n\t\t\t// Remove unimplemented ones (mainly spellcrafts that don't have sense in combat)\r\n\t\t\t.filter((c) => cardMappings[c.id] != null);\r\n\r\n\t\tthis.bountyTavernSpellIds = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((c) => c.set === 'Battlegrounds' && !c.premium)\r\n\t\t\t.filter((c) => c.type?.toUpperCase() === CardType[CardType.SPELL])\r\n\t\t\t.filter((c) => c.mechanics?.includes('BACON_BOUNTY'))\r\n\t\t\t.filter((c) => cardMappings[c.id] != null)\r\n\t\t\t.map((c) => c.id);\r\n\r\n\t\tthis.putricidePool1 = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool1)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.putricidePool2 = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool2)\r\n\t\t\t.map((card) => card.id);\r\n\t\tthis.putridicePool2ForEternalSummoner = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => card.battlegroundsPutridicePool2)\r\n\t\t\t.filter((card) => !card.battlegroundsPutridiceSummonerExclusion)\r\n\t\t\t.map((card) => card.id);\r\n\t}\r\n\r\n\tpublic avengeValue(cardId: string): number {\r\n\t\tconst avengeImpl = cardMappings[cardId];\r\n\t\tif (hasAvenge(avengeImpl)) {\r\n\t\t\treturn avengeImpl.baseAvengeValue(cardId);\r\n\t\t}\r\n\t\tswitch (cardId) {\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014_G:\r\n\t\t\t\t// case CardIds.IceSickle:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.MechanoTank_BG21_023:\r\n\t\t\tcase CardIds.MechanoTank_BG21_023_G:\r\n\t\t\tcase CardIds.PalescaleCrocolisk_BG21_001:\r\n\t\t\tcase CardIds.PalescaleCrocolisk_BG21_001_G:\r\n\t\t\tcase CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy:\r\n\t\t\tcase CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy_G:\r\n\t\t\tcase CardIds.Bristlebach_BG26_157:\r\n\t\t\tcase CardIds.Bristlebach_BG26_157_G:\r\n\t\t\t\treturn 2;\r\n\t\t\tcase CardIds.BoomSquad_BG27_Reward_502:\r\n\t\t\tcase CardIds.TremblingTrolley_BG28_967:\r\n\t\t\tcase CardIds.TremblingTrolley_BG28_967_G:\r\n\t\t\t\treturn 3;\r\n\t\t\tcase CardIds.Onyxia_Broodmother:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\t\t// case CardIds.Sisefin_BG21_009:\r\n\t\t\t// case CardIds.Sisefin_BG21_009_G:\r\n\t\t\t// case CardIds.TonyTwoTusk_BG21_031:\r\n\t\t\t// case CardIds.TonyTwoTusk_BG21_031_G:\r\n\t\t\t// case CardIds.ScrapScraper_BG26_148:\r\n\t\t\t// case CardIds.ScrapScraper_BG26_148_G:\r\n\t\t\tcase CardIds.RelentlessSentry_BG25_003:\r\n\t\t\tcase CardIds.RelentlessSentry_BG25_003_G:\r\n\t\t\tcase CardIds.PhaerixWrathOfTheSun_BG28_403:\r\n\t\t\tcase CardIds.PhaerixWrathOfTheSun_BG28_403_G:\r\n\t\t\tcase CardIds.TumblingDisaster_BG28_Reward_505:\r\n\t\t\tcase CardIds.CycleOfEnergy_BG28_Reward_504:\r\n\t\t\tcase CardIds.AugmentedLaborer_BG28_740:\r\n\t\t\tcase CardIds.AugmentedLaborer_BG28_740_G:\r\n\t\t\tcase CardIds.MurglMkIi_BG29_991:\r\n\t\t\tcase CardIds.MurglMkIi_BG29_991_G:\r\n\t\t\t\treturn 4;\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010:\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010_G:\r\n\t\t\tcase CardIds.StaffOfTheScourge_BG30_MagicItem_437:\r\n\t\t\t\treturn 5;\r\n\t\t\tcase CardIds.StableAmalgamation_BG28_Reward_518:\r\n\t\t\t\treturn 7;\r\n\t\t\tcase CardIds.BleedingHeart_BG30_MagicItem_713:\r\n\t\t\t\treturn 8;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tpublic defaultScriptDataNum(cardId: string): number {\r\n\t\tconst defaultScriptDataNumImpl = cardMappings[cardId];\r\n\t\tif (hasDefaultScriptDataNum(defaultScriptDataNumImpl)) {\r\n\t\t\treturn defaultScriptDataNumImpl.defaultScriptDataNum(cardId);\r\n\t\t}\r\n\t\tswitch (cardId) {\r\n\t\t\tcase CardIds.TumblingDisaster_BG28_Reward_505:\r\n\t\t\tcase CardIds.TwinSkyLanterns_BG30_MagicItem_822:\r\n\t\t\tcase CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2:\r\n\t\t\tcase CardIds.BoomController_BG30_MagicItem_440:\r\n\t\t\tcase CardIds.AllianceKeychain_BG30_MagicItem_433:\r\n\t\t\tcase CardIds.AllianceKeychain_AllianceKeychainToken_BG30_MagicItem_433t:\r\n\t\t\tcase CardIds.DeathlyPhylactery_BG30_MagicItem_700:\r\n\t\t\tcase CardIds.PromoPortrait_BG30_MagicItem_918:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.BloodGolemSticker_BG30_MagicItem_442:\r\n\t\t\tcase CardIds.MechagonAdapter_BG30_MagicItem_910:\r\n\t\t\tcase CardIds.FaerieDragonScale_BG32_MagicItem_363:\r\n\t\t\t\treturn 3;\r\n\t\t\tdefault:\r\n\t\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic getTavernLevel(cardId: string): number {\r\n\t\treturn this.allCards.getCard(cardId).techLevel ?? 1;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTavernTier(tavernTier: number): string {\r\n\t\t// Tzvern tier can be undefined for hero-power specific tokens, like the Amalgam, or when\r\n\t\t// for some reason tokens end up in the shop. For now, defaulting to 1 for tavern\r\n\t\t// level seems to work in all cases\r\n\t\tconst minionsForTier = this.minionsForTier[tavernTier ?? 1];\r\n\t\tif (!minionsForTier?.length) {\r\n\t\t\tconsole.error('incorrect minions for tier', tavernTier);\r\n\t\t}\r\n\t\treturn pickRandom(minionsForTier)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForMinTavernTier(tavernTier: number): string {\r\n\t\tconst minionsForTier = this.pool.filter((m) => m.techLevel >= tavernTier);\r\n\t\tif (!minionsForTier?.length) {\r\n\t\t\tconsole.error('incorrect minions for tier', tavernTier);\r\n\t\t}\r\n\t\treturn pickRandom(minionsForTier)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMechToMagnetize(tavernLimitUpper: number): string {\r\n\t\tconst magneticMechs = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.MODULAR));\r\n\t\tconst pool = magneticMechs.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMagneticVolumizer(\r\n\t\tplayerEntity: BgsPlayerEntity,\r\n\t\tanomalies: readonly string[],\r\n\t\ttavernLimitUpper: number,\r\n\t\tsourceEntity?: BoardEntity,\r\n\t\ttargetEntity?: BoardEntity,\r\n\t): string {\r\n\t\tconst magneticVolumizers = this.magneticMinions.filter((m) =>\r\n\t\t\tisVolumizer(m.id, playerEntity, anomalies, this.allCards),\r\n\t\t);\r\n\t\tconst pool = magneticVolumizers.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\r\n\t\tif (sourceEntity && targetEntity && debugState.active && debugState.forcedRandomPicks.length > 0) {\r\n\t\t\tconst forced = debugState.forcedRandomPicks.find(\r\n\t\t\t\t(p) =>\r\n\t\t\t\t\tdebugState.isCorrectEntity(p.source, sourceEntity) &&\r\n\t\t\t\t\tdebugState.isCorrectEntity(p.target, targetEntity),\r\n\t\t\t);\r\n\t\t\tif (forced?.chosenCardId) {\r\n\t\t\t\tconst inPool = pool.some((m) => m.id === forced.chosenCardId);\r\n\t\t\t\tif (inPool) {\r\n\t\t\t\t\tdebugState.forcedRandomPicks = debugState.forcedRandomPicks.filter((p) => p !== forced);\r\n\t\t\t\t\treturn forced.chosenCardId;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst result = pickRandom(pool)?.id;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tpublic getRandomDivineShield(tavernLimitUpper: number) {\r\n\t\tconst divineShieldPool = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.DIVINE_SHIELD));\r\n\t\tconst pool = divineShieldPool.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomRally(tavernLimitUpper: number) {\r\n\t\tconst targetPool = this.pool\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => hasMechanic(m, GameTag.BACON_RALLY));\r\n\t\tconst pool = targetPool.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTribe(\r\n\t\ttribe: Race,\r\n\t\ttavernLimitUpper: number,\r\n\t\texcludedCards: readonly string[] = [],\r\n\t): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => this.isValidTribe([tribe], m.races, false))\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper)\r\n\t\t\t.filter((m) => !excludedCards.includes(m.id));\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomProtossMinion(tavernLimitUpper: number): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => m.mechanics?.includes(GameTag[GameTag.PROTOSS]))\r\n\t\t\t.filter((m) => m.type?.toUpperCase() === CardType[CardType.MINION])\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic getRandomSpellcraft(options: { maxTavernTier?: number }): string {\r\n\t\tconst pool = this.spellcraftPool.filter((c) =>\r\n\t\t\toptions.maxTavernTier ? c.techLevel <= options.maxTavernTier : true,\r\n\t\t);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tpublic isGolden(card: ReferenceCard): boolean {\r\n\t\treturn card.premium;\r\n\t}\r\n\r\n\tprivate isValidTribe(validTribes: readonly Race[], cardRaces: readonly string[], allowEmptyRaces = true): boolean {\r\n\t\tif (!cardRaces?.length && allowEmptyRaces) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn (cardRaces ?? [])\r\n\t\t\t.map((race) => getRaceEnum(race))\r\n\t\t\t.some((raceEnum) => raceEnum === Race.ALL || !validTribes?.length || validTribes.includes(raceEnum));\r\n\t}\r\n\r\n\tpublic getRandomTavernSpell(options?: { exactTavernTier?: number; maxTavernTier?: number }): string {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/** BG 2-cost spells that have simulator support (cardMappings). */\r\n\tpublic getTwoCostBattlegroundsSpellIdsImplemented(): string[] {\r\n\t\treturn this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter(\r\n\t\t\t\t(c) =>\r\n\t\t\t\t\tc.set === 'Battlegrounds' &&\r\n\t\t\t\t\t!c.premium &&\r\n\t\t\t\t\t(c.cost ?? 0) === 2 &&\r\n\t\t\t\t\tc.type?.toUpperCase() === CardType[CardType.SPELL] &&\r\n\t\t\t\t\tcardMappings[c.id] != null,\r\n\t\t\t)\r\n\t\t\t.map((c) => c.id);\r\n\t}\r\n}\r\n"]}
|
|
@@ -17,7 +17,7 @@ exports.Butchering = {
|
|
|
17
17
|
}
|
|
18
18
|
target.health = 0;
|
|
19
19
|
target.definitelyDead = true;
|
|
20
|
-
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero,
|
|
20
|
+
const { attack, health } = (0, utils_2.withTavernSpellStatBuff)(input.hero, 5, 0, input.gameState.allCards, input.spellCardId);
|
|
21
21
|
(0, global_info_helpers_1.increaseUndeadAttackBonus)(input.hero, input.board, input.hero, attack, input.gameState);
|
|
22
22
|
(0, global_info_helpers_1.increaseUndeadHealthBonus)(input.hero, input.board, input.hero, health, input.gameState);
|
|
23
23
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"butchering.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/butchering.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,iFAA+G;AAC/G,0CAA0E;AAG7D,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,cAAc;YACjB,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,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC;QAC/G,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,+CAAyB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxF,IAAA,+CAAyB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { increaseUndeadAttackBonus, increaseUndeadHealthBonus } from '../../../simulation/global-info-helpers';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const Butchering: TavernSpellCard = {\r\n\tcardIds: [CardIds.Butchering_BG28_604],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst undeadTargets = input.board.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te.health > 0 &&\r\n\t\t\t\t!e.definitelyDead &&\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = input.target && undeadTargets.includes(input.target) ? input.target : pickRandom(undeadTargets);\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttarget.health = 0;\r\n\t\ttarget.definitelyDead = true;\r\n\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\
|
|
1
|
+
{"version":3,"file":"butchering.js","sourceRoot":"","sources":["../../../../src/cards/impl/bg-spell/butchering.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAEpD,mDAAqD;AACrD,iFAA+G;AAC/G,0CAA0E;AAG7D,QAAA,UAAU,GAAoB;IAC1C,OAAO,EAAE,YAA6B;IACtC,eAAe,EAAE,CAAC,YAAoB,EAAE,KAAqB,EAAE,EAAE;QAChE,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC,cAAc;YACjB,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,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC;QAC/G,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO;SACP;QACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAuB,EACjD,KAAK,CAAC,IAAI,EACV,CAAC,EACD,CAAC,EACD,KAAK,CAAC,SAAS,CAAC,QAAQ,EACxB,KAAK,CAAC,WAAW,CACjB,CAAC;QACF,IAAA,+CAAyB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxF,IAAA,+CAAyB,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandom } from '../../../services/utils';\r\nimport { increaseUndeadAttackBonus, increaseUndeadHealthBonus } from '../../../simulation/global-info-helpers';\r\nimport { hasCorrectTribe, withTavernSpellStatBuff } from '../../../utils';\r\nimport { CastSpellInput, TavernSpellCard } from '../../card.interface';\r\n\r\nexport const Butchering: TavernSpellCard = {\r\n\tcardIds: [CardIds.Butchering_BG28_604],\r\n\tcastTavernSpell: (_spellCardId: string, input: CastSpellInput) => {\r\n\t\tconst undeadTargets = input.board.filter(\r\n\t\t\t(e) =>\r\n\t\t\t\te.health > 0 &&\r\n\t\t\t\t!e.definitelyDead &&\r\n\t\t\t\thasCorrectTribe(e, input.hero, Race.UNDEAD, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tconst target = input.target && undeadTargets.includes(input.target) ? input.target : pickRandom(undeadTargets);\r\n\t\tif (!target) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttarget.health = 0;\r\n\t\ttarget.definitelyDead = true;\r\n\r\n\t\tconst { attack, health } = withTavernSpellStatBuff(\r\n\t\t\tinput.hero,\r\n\t\t\t5,\r\n\t\t\t0,\r\n\t\t\tinput.gameState.allCards,\r\n\t\t\tinput.spellCardId,\r\n\t\t);\r\n\t\tincreaseUndeadAttackBonus(input.hero, input.board, input.hero, attack, input.gameState);\r\n\t\tincreaseUndeadHealthBonus(input.hero, input.board, input.hero, health, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,7 +4,7 @@ exports.BrazenBuccaneer = void 0;
|
|
|
4
4
|
const reference_data_1 = require("@firestone-hs/reference-data");
|
|
5
5
|
const stats_1 = require("../../../simulation/stats");
|
|
6
6
|
const utils_1 = require("../../../utils");
|
|
7
|
-
const baseAttackBuff =
|
|
7
|
+
const baseAttackBuff = 2;
|
|
8
8
|
const baseHealthBuff = 3;
|
|
9
9
|
exports.BrazenBuccaneer = {
|
|
10
10
|
cardIds: ["BG35_701", "BG35_701_G"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brazen-buccaneer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/brazen-buccaneer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACF,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,IAAI,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;YACjC,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,cAAc,GAAG,IAAI,EACrB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nconst baseAttackBuff =
|
|
1
|
+
{"version":3,"file":"brazen-buccaneer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/brazen-buccaneer.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,qDAAwD;AACxD,0CAAiD;AAGjD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEZ,QAAA,eAAe,GAAkB;IAC7C,OAAO,EAAE,0BAAsE;IAC/E,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAChG,CAAC;QACF,IAAI,CAAC,MAAM,EAAE;YACZ,OAAO,IAAI,CAAC;SACZ;QACD,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;YACjC,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,cAAc,GAAG,IAAI,EACrB,cAAc,GAAG,IAAI,EACrB,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,SAAS,CACf,CAAC;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nconst baseAttackBuff = 2;\r\nconst baseHealthBuff = 3;\r\n\r\nexport const BrazenBuccaneer: EndOfTurnCard = {\r\n\tcardIds: [CardIds.BrazenBuccaneer_BG35_701, CardIds.BrazenBuccaneer_BG35_701_G],\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BrazenBuccaneer_BG35_701_G ? 2 : 1;\r\n\t\tconst pirate = input.board.find((e) =>\r\n\t\t\thasCorrectTribe(e, input.hero, Race.PIRATE, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tif (!pirate) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tconst cardsPlayed = input.hero.globalInfo.CardsPlayedThisTurn ?? 0;\r\n\t\tconst repeats = 1 + cardsPlayed;\r\n\t\tfor (let i = 0; i < repeats; i++) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\tpirate,\r\n\t\t\t\tminion,\r\n\t\t\t\tbaseAttackBuff * mult,\r\n\t\t\t\tbaseHealthBuff * mult,\r\n\t\t\t\tinput.board,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -13,7 +13,7 @@ exports.BronzeChromadrake = {
|
|
|
13
13
|
continue;
|
|
14
14
|
}
|
|
15
15
|
if ((0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {
|
|
16
|
-
(0, stats_1.modifyStats)(e, minion,
|
|
16
|
+
(0, stats_1.modifyStats)(e, minion, 3 * mult, 1 * mult, input.board, input.hero, input.gameState);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bronze-chromadrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bronze-chromadrake.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,4BAAsF;IAC/F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;gBACnC,SAAS;aACT;YACD,IAAI,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,EAAE;gBACrG,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACrF;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 { 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 BronzeChromadrake: BattlecryCard = {\r\n\tcardIds: [CardIds.BronzeChromadrakeToken_BG34_637t, CardIds.BronzeChromadrakeToken_BG34_637_Gt],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BronzeChromadrakeToken_BG34_637_Gt ? 2 : 1;\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.entityId === minion.entityId) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, minion,
|
|
1
|
+
{"version":3,"file":"bronze-chromadrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/bronze-chromadrake.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,iBAAiB,GAAkB;IAC/C,OAAO,EAAE,4BAAsF;IAC/F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAA+C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;gBACnC,SAAS;aACT;YACD,IAAI,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,EAAE;gBACrG,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACrF;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 { 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 BronzeChromadrake: BattlecryCard = {\r\n\tcardIds: [CardIds.BronzeChromadrakeToken_BG34_637t, CardIds.BronzeChromadrakeToken_BG34_637_Gt],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.BronzeChromadrakeToken_BG34_637_Gt ? 2 : 1;\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.entityId === minion.entityId) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, minion, 3 * mult, 1 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,7 +8,7 @@ exports.DeadSeaRavager = {
|
|
|
8
8
|
rally: (minion, input) => {
|
|
9
9
|
const mult = minion.cardId === "BG34_765_G" ? 2 : 1;
|
|
10
10
|
const candidates = input.attackingBoard.filter((e) => e != minion);
|
|
11
|
-
const targets = (0, utils_1.pickMultipleRandomAlive)(candidates,
|
|
11
|
+
const targets = (0, utils_1.pickMultipleRandomAlive)(candidates, 4);
|
|
12
12
|
for (const target of targets) {
|
|
13
13
|
for (let i = 0; i < mult; i++) {
|
|
14
14
|
(0, stats_1.modifyStats)(target, minion, minion.attack, 0, input.attackingBoard, input.attackingHero, input.gameState);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dead-sea-ravager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dead-sea-ravager.ts"],"names":[],"mappings":";;;AAEA,mDAAkE;AAElE,qDAAwD;AAG3C,QAAA,cAAc,GAAc;IACxC,OAAO,EAAE,0BAAoE;IAC7E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,MAAM,CAAC,MAAM,EACb,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const DeadSeaRavager: RallyCard = {\r\n\tcardIds: [CardIds.DeadSeaRavager_BG34_765, CardIds.DeadSeaRavager_BG34_765_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DeadSeaRavager_BG34_765_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) => e != minion);\r\n\t\tconst targets = pickMultipleRandomAlive(candidates,
|
|
1
|
+
{"version":3,"file":"dead-sea-ravager.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dead-sea-ravager.ts"],"names":[],"mappings":";;;AAEA,mDAAkE;AAElE,qDAAwD;AAG3C,QAAA,cAAc,GAAc;IACxC,OAAO,EAAE,0BAAoE;IAC7E,KAAK,EAAE,CAAC,MAAmB,EAAE,KAAoB,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,IAAA,+BAAuB,EAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC9B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,MAAM,CAAC,MAAM,EACb,CAAC,EACD,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,SAAS,CACf,CAAC;aACF;SACD;QACD,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IACvD,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickMultipleRandomAlive } from '../../../services/utils';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const DeadSeaRavager: RallyCard = {\r\n\tcardIds: [CardIds.DeadSeaRavager_BG34_765, CardIds.DeadSeaRavager_BG34_765_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DeadSeaRavager_BG34_765_G ? 2 : 1;\r\n\t\tconst candidates = input.attackingBoard.filter((e) => e != minion);\r\n\t\tconst targets = pickMultipleRandomAlive(candidates, 4);\r\n\t\tfor (const target of targets) {\r\n\t\t\tfor (let i = 0; i < mult; i++) {\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\ttarget,\r\n\t\t\t\t\tminion,\r\n\t\t\t\t\tminion.attack,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tinput.attackingBoard,\r\n\t\t\t\t\tinput.attackingHero,\r\n\t\t\t\t\tinput.gameState,\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,7 +6,7 @@ exports.DustboneDevastator = {
|
|
|
6
6
|
cardIds: ["BG33_323", "BG33_323_G"],
|
|
7
7
|
rally: (minion, input) => {
|
|
8
8
|
const mult = minion.cardId === "BG33_323_G" ? 2 : 1;
|
|
9
|
-
(0, global_info_helpers_1.increaseUndeadAttackBonus)(minion, input.attackingBoard, input.attackingHero,
|
|
9
|
+
(0, global_info_helpers_1.increaseUndeadAttackBonus)(minion, input.attackingBoard, input.attackingHero, 2 * mult, input.gameState);
|
|
10
10
|
return { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };
|
|
11
11
|
},
|
|
12
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dustbone-devastator.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dustbone-devastator.ts"],"names":[],"mappings":";;;AAEA,iFAAoF;AAIvE,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,+CAAyB,EAAC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxG,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 { increaseUndeadAttackBonus } from '../../../simulation/global-info-helpers';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const DustboneDevastator: RallyCard = {\r\n\tcardIds: [CardIds.DustboneDevastator_BG33_323, CardIds.DustboneDevastator_BG33_323_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DustboneDevastator_BG33_323_G ? 2 : 1;\r\n\t\tincreaseUndeadAttackBonus(minion, input.attackingBoard, input.attackingHero,
|
|
1
|
+
{"version":3,"file":"dustbone-devastator.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/dustbone-devastator.ts"],"names":[],"mappings":";;;AAEA,iFAAoF;AAIvE,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,+CAAyB,EAAC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxG,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 { increaseUndeadAttackBonus } from '../../../simulation/global-info-helpers';\r\nimport { OnAttackInput } from '../../../simulation/on-attack';\r\nimport { RallyCard } from '../../card.interface';\r\n\r\nexport const DustboneDevastator: RallyCard = {\r\n\tcardIds: [CardIds.DustboneDevastator_BG33_323, CardIds.DustboneDevastator_BG33_323_G],\r\n\trally: (minion: BoardEntity, input: OnAttackInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.DustboneDevastator_BG33_323_G ? 2 : 1;\r\n\t\tincreaseUndeadAttackBonus(minion, input.attackingBoard, input.attackingHero, 2 * mult, input.gameState);\r\n\t\treturn { dmgDoneByAttacker: 0, dmgDoneByDefender: 0 };\r\n\t},\r\n};\r\n"]}
|
|
@@ -13,7 +13,7 @@ exports.GreenChromadrake = {
|
|
|
13
13
|
continue;
|
|
14
14
|
}
|
|
15
15
|
if ((0, utils_1.hasCorrectTribe)(e, input.hero, reference_data_1.Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {
|
|
16
|
-
(0, stats_1.modifyStats)(e, minion,
|
|
16
|
+
(0, stats_1.modifyStats)(e, minion, 1 * mult, 3 * mult, input.board, input.hero, input.gameState);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"green-chromadrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/green-chromadrake.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,4BAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;gBACnC,SAAS;aACT;YACD,IAAI,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,EAAE;gBACrG,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACrF;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 { 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 GreenChromadrake: BattlecryCard = {\r\n\tcardIds: [CardIds.GreenChromadrakeToken_BG34_636t, CardIds.GreenChromadrakeToken_BG34_636_Gt],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GreenChromadrakeToken_BG34_636_Gt ? 2 : 1;\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.entityId === minion.entityId) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, minion,
|
|
1
|
+
{"version":3,"file":"green-chromadrake.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/green-chromadrake.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,gBAAgB,GAAkB;IAC9C,OAAO,EAAE,4BAAoF;IAC7F,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,kBAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE;gBACnC,SAAS;aACT;YACD,IAAI,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,EAAE;gBACrG,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACrF;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 { 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 GreenChromadrake: BattlecryCard = {\r\n\tcardIds: [CardIds.GreenChromadrakeToken_BG34_636t, CardIds.GreenChromadrakeToken_BG34_636_Gt],\r\n\tbattlecry: (minion: BoardEntity, input: BattlecryInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.GreenChromadrakeToken_BG34_636_Gt ? 2 : 1;\r\n\t\tfor (const e of input.board) {\r\n\t\t\tif (e.entityId === minion.entityId) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (hasCorrectTribe(e, input.hero, Race.DRAGON, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\t\tmodifyStats(e, minion, 1 * mult, 3 * mult, input.board, input.hero, input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,8 +8,8 @@ exports.NalaaTheRedeemer = {
|
|
|
8
8
|
var _a;
|
|
9
9
|
const mult = minion.cardId === "BG28_551_G" ? 2 : 1;
|
|
10
10
|
const hasPortrait = (_a = input.hero.trinkets) === null || _a === void 0 ? void 0 : _a.some((t) => t.cardId === "BG30_MagicItem_944");
|
|
11
|
-
const extraAtk = hasPortrait ?
|
|
12
|
-
const extraHp = hasPortrait ?
|
|
11
|
+
const extraAtk = hasPortrait ? 4 : 0;
|
|
12
|
+
const extraHp = hasPortrait ? 4 : 0;
|
|
13
13
|
(0, utils_1.grantStatsToMinionsOfEachType)(minion, input.board, input.hero, 4 * mult + extraAtk, 3 * mult + extraHp, input.gameState);
|
|
14
14
|
},
|
|
15
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nalaa-the-redeemer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nalaa-the-redeemer.ts"],"names":[],"mappings":";;;AAEA,0CAA+D;AAGlD,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,GAAG,QAAQ,EACnB,CAAC,GAAG,IAAI,GAAG,OAAO,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const NalaaTheRedeemer: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.NalaaTheRedeemer_BG28_551, CardIds.NalaaTheRedeemer_BG28_551_G],\r\n\tonTavernSpellCast: (minion: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.NalaaTheRedeemer_BG28_551_G ? 2 : 1;\r\n\t\tconst hasPortrait = input.hero.trinkets?.some((t) => t.cardId === CardIds.RedeemerPortrait_BG30_MagicItem_944);\r\n\t\tconst extraAtk = hasPortrait ?
|
|
1
|
+
{"version":3,"file":"nalaa-the-redeemer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/nalaa-the-redeemer.ts"],"names":[],"mappings":";;;AAEA,0CAA+D;AAGlD,QAAA,gBAAgB,GAA0B;IACtD,OAAO,EAAE,0BAAwE;IACjF,iBAAiB,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACjE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,iBAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAgD,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAA,qCAA6B,EAC5B,MAAM,EACN,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,IAAI,EACV,CAAC,GAAG,IAAI,GAAG,QAAQ,EACnB,CAAC,GAAG,IAAI,GAAG,OAAO,EAClB,KAAK,CAAC,SAAS,CACf,CAAC;IACH,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { grantStatsToMinionsOfEachType } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const NalaaTheRedeemer: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.NalaaTheRedeemer_BG28_551, CardIds.NalaaTheRedeemer_BG28_551_G],\r\n\tonTavernSpellCast: (minion: BoardEntity, input: CastSpellInput) => {\r\n\t\tconst mult = minion.cardId === CardIds.NalaaTheRedeemer_BG28_551_G ? 2 : 1;\r\n\t\tconst hasPortrait = input.hero.trinkets?.some((t) => t.cardId === CardIds.RedeemerPortrait_BG30_MagicItem_944);\r\n\t\tconst extraAtk = hasPortrait ? 4 : 0;\r\n\t\tconst extraHp = hasPortrait ? 4 : 0;\r\n\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\tminion,\r\n\t\t\tinput.board,\r\n\t\t\tinput.hero,\r\n\t\t\t4 * mult + extraAtk,\r\n\t\t\t3 * mult + extraHp,\r\n\t\t\tinput.gameState,\r\n\t\t);\r\n\t},\r\n};\r\n"]}
|
|
@@ -4,7 +4,7 @@ exports.SkeletalStrafer = void 0;
|
|
|
4
4
|
const stats_1 = require("../../../simulation/stats");
|
|
5
5
|
exports.SkeletalStrafer = {
|
|
6
6
|
cardIds: ["BG35_334", "BG35_334_G"],
|
|
7
|
-
baseAvengeValue: () =>
|
|
7
|
+
baseAvengeValue: () => 1,
|
|
8
8
|
avenge: (minion, _input) => {
|
|
9
9
|
var _a, _b;
|
|
10
10
|
const isG = minion.cardId === "BG35_334_G";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeletal-strafer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/skeletal-strafer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"skeletal-strafer.js","sourceRoot":"","sources":["../../../../src/cards/impl/minion/skeletal-strafer.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,eAAe,GAA+B;IAC1D,OAAO,EAAE,0BAAsE;IAC/E,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,MAAmB,EAAE,MAAmB,EAAE,EAAE;;QACpD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC;QACjE,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,cAAc,GAAG,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,OAAO,CAAC,GAAG,IAAI,CAAC;QAClE,MAAM,CAAC,cAAc,GAAG,CAAC,MAAA,MAAM,CAAC,cAAc,mCAAI,MAAM,CAAC,GAAG,GAAG,CAAC;IACjE,CAAC;IACD,SAAS,EAAE,CAAC,MAAmB,EAAE,KAAqB,EAAE,EAAE;;QACzD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,iBAAuC,CAAC;QACjE,MAAM,GAAG,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;YAC5B,IAAA,mBAAW,EAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAC1E;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AvengeCard, EndOfTurnCard, EndOfTurnInput } from '../../card.interface';\r\n\r\nexport const SkeletalStrafer: AvengeCard & EndOfTurnCard = {\r\n\tcardIds: [CardIds.SkeletalStrafer_BG35_334, CardIds.SkeletalStrafer_BG35_334_G],\r\n\tbaseAvengeValue: () => 1,\r\n\tavenge: (minion: BoardEntity, _input: AvengeInput) => {\r\n\t\tconst isG = minion.cardId === CardIds.SkeletalStrafer_BG35_334_G;\r\n\t\tconst dAtk = isG ? 2 : 1;\r\n\t\tconst dHp = isG ? 2 : 1;\r\n\t\tconst baseAtk = isG ? 2 : 1;\r\n\t\tconst baseHp = isG ? 2 : 1;\r\n\t\tminion.scriptDataNum1 = (minion.scriptDataNum1 ?? baseAtk) + dAtk;\r\n\t\tminion.scriptDataNum2 = (minion.scriptDataNum2 ?? baseHp) + dHp;\r\n\t},\r\n\tendOfTurn: (minion: BoardEntity, input: EndOfTurnInput) => {\r\n\t\tconst isG = minion.cardId === CardIds.SkeletalStrafer_BG35_334_G;\r\n\t\tconst atk = minion.scriptDataNum1 ?? (isG ? 2 : 1);\r\n\t\tconst hp = minion.scriptDataNum2 ?? (isG ? 2 : 1);\r\n\t\tfor (const e of input.board) {\r\n\t\t\tmodifyStats(e, minion, atk, hp, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,7 +5,7 @@ const global_info_helpers_1 = require("../../../simulation/global-info-helpers")
|
|
|
5
5
|
exports.ArtisanalUrn = {
|
|
6
6
|
cardIds: ["BG30_MagicItem_989", "BG30_MagicItem_989t"],
|
|
7
7
|
startOfCombat: (trinket, input) => {
|
|
8
|
-
const buff = trinket.cardId === "BG30_MagicItem_989" ? 4 :
|
|
8
|
+
const buff = trinket.cardId === "BG30_MagicItem_989" ? 4 : 15;
|
|
9
9
|
(0, global_info_helpers_1.increaseUndeadAttackBonus)(input.playerEntity, input.playerBoard, input.playerEntity, buff, input.gameState);
|
|
10
10
|
return { hasTriggered: true, shouldRecomputeCurrentAttacker: false };
|
|
11
11
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artisanal-urn.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/artisanal-urn.ts"],"names":[],"mappings":";;;AAEA,iFAAoF;AAIvE,QAAA,YAAY,GAAsB;IAC9C,OAAO,EAAE,6CAAqG;IAC9G,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,yBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAA,+CAAyB,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5G,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { increaseUndeadAttackBonus } from '../../../simulation/global-info-helpers';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const ArtisanalUrn: StartOfCombatCard = {\r\n\tcardIds: [CardIds.ArtisanalUrn_BG30_MagicItem_989, CardIds.ArtisanalUrn_ArtisanalUrnToken_BG30_MagicItem_989t],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst buff = trinket.cardId === CardIds.ArtisanalUrn_BG30_MagicItem_989 ? 4 :
|
|
1
|
+
{"version":3,"file":"artisanal-urn.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/artisanal-urn.ts"],"names":[],"mappings":";;;AAEA,iFAAoF;AAIvE,QAAA,YAAY,GAAsB;IAC9C,OAAO,EAAE,6CAAqG;IAC9G,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,yBAA4C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAA,+CAAyB,EAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5G,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { increaseUndeadAttackBonus } from '../../../simulation/global-info-helpers';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const ArtisanalUrn: StartOfCombatCard = {\r\n\tcardIds: [CardIds.ArtisanalUrn_BG30_MagicItem_989, CardIds.ArtisanalUrn_ArtisanalUrnToken_BG30_MagicItem_989t],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst buff = trinket.cardId === CardIds.ArtisanalUrn_BG30_MagicItem_989 ? 4 : 15;\r\n\t\tincreaseUndeadAttackBonus(input.playerEntity, input.playerBoard, input.playerEntity, buff, input.gameState);\r\n\t\treturn { hasTriggered: true, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
|
|
@@ -8,7 +8,7 @@ exports.BewitchedRibbon = {
|
|
|
8
8
|
if (input.source !== input.hero) {
|
|
9
9
|
return;
|
|
10
10
|
}
|
|
11
|
-
(0, utils_1.addStatsToBoard)(input.hero, input.board, input.hero,
|
|
11
|
+
(0, utils_1.addStatsToBoard)(input.hero, input.board, input.hero, 2, 2, input.gameState);
|
|
12
12
|
},
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=bewitched-ribbon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bewitched-ribbon.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bewitched-ribbon.ts"],"names":[],"mappings":";;;AAEA,0CAAiD;AAGpC,QAAA,eAAe,GAA0B;IACrD,OAAO,EAAE,sBAA4C;IACrD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;YAChC,OAAO;SACP;QAED,IAAA,uBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const BewitchedRibbon: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BewitchedRibbon_BG35_MagicItem_923],\r\n\tonTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\taddStatsToBoard(input.hero, input.board, input.hero,
|
|
1
|
+
{"version":3,"file":"bewitched-ribbon.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/bewitched-ribbon.ts"],"names":[],"mappings":";;;AAEA,0CAAiD;AAGpC,QAAA,eAAe,GAA0B;IACrD,OAAO,EAAE,sBAA4C;IACrD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;YAChC,OAAO;SACP;QAED,IAAA,uBAAe,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7E,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { CastSpellInput, OnTavernSpellCastCard } from '../../card.interface';\r\n\r\nexport const BewitchedRibbon: OnTavernSpellCastCard = {\r\n\tcardIds: [CardIds.BewitchedRibbon_BG35_MagicItem_923],\r\n\tonTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tif (input.source !== input.hero) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\taddStatsToBoard(input.hero, input.board, input.hero, 2, 2, input.gameState);\r\n\t},\r\n};\r\n"]}
|
|
@@ -5,8 +5,8 @@ exports.CopperCoil = {
|
|
|
5
5
|
cardIds: ["BG35_MagicItem_300", "BG35_MagicItem_300t"],
|
|
6
6
|
onBeforeMagnetize: (trinket, input) => {
|
|
7
7
|
var _a, _b, _c, _d;
|
|
8
|
-
const additionalAttackBuff = trinket.cardId === "BG35_MagicItem_300" ?
|
|
9
|
-
const additionalHealthBuff = trinket.cardId === "BG35_MagicItem_300" ? 1 :
|
|
8
|
+
const additionalAttackBuff = trinket.cardId === "BG35_MagicItem_300" ? 1 : 3;
|
|
9
|
+
const additionalHealthBuff = trinket.cardId === "BG35_MagicItem_300" ? 1 : 23;
|
|
10
10
|
const currentAttackBuff = (_a = trinket.scriptDataNum1) !== null && _a !== void 0 ? _a : additionalAttackBuff;
|
|
11
11
|
const currentHealthBuff = (_b = trinket.scriptDataNum2) !== null && _b !== void 0 ? _b : additionalHealthBuff;
|
|
12
12
|
input.magnetizedCard.attack += currentAttackBuff;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copper-coil.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/copper-coil.ts"],"names":[],"mappings":";;;AAKa,QAAA,UAAU,GAA0B;IAChD,OAAO,EAAE,6CAA+F;IACxG,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAA6B,EAAE,EAAE;;QAC3E,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"copper-coil.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/copper-coil.ts"],"names":[],"mappings":";;;AAKa,QAAA,UAAU,GAA0B;IAChD,OAAO,EAAE,6CAA+F;IACxG,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAA6B,EAAE,EAAE;;QAC3E,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,yBAA0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,oBAAoB,CAAC;QACzE,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,oBAAoB,CAAC;QACzE,KAAK,CAAC,cAAc,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACjD,KAAK,CAAC,cAAc,CAAC,MAAM,IAAI,iBAAiB,CAAC;QACjD,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC;QAC9E,OAAO,CAAC,cAAc,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC,GAAG,oBAAoB,CAAC;IAC/E,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnBeforeMagnetizeInput } from '../../../simulation/magnetize';\r\nimport { OnBeforeMagnetizeCard } from '../../card.interface';\r\n\r\nexport const CopperCoil: OnBeforeMagnetizeCard = {\r\n\tcardIds: [CardIds.CopperCoil_BG35_MagicItem_300, CardIds.CopperCoil_CopperCoilToken_BG35_MagicItem_300t],\r\n\tonBeforeMagnetize: (trinket: BoardTrinket, input: OnBeforeMagnetizeInput) => {\r\n\t\tconst additionalAttackBuff = trinket.cardId === CardIds.CopperCoil_BG35_MagicItem_300 ? 1 : 3;\r\n\t\tconst additionalHealthBuff = trinket.cardId === CardIds.CopperCoil_BG35_MagicItem_300 ? 1 : 23;\r\n\t\tconst currentAttackBuff = trinket.scriptDataNum1 ?? additionalAttackBuff;\r\n\t\tconst currentHealthBuff = trinket.scriptDataNum2 ?? additionalHealthBuff;\r\n\t\tinput.magnetizedCard.attack += currentAttackBuff;\r\n\t\tinput.magnetizedCard.health += currentHealthBuff;\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 ?? 0) + additionalAttackBuff;\r\n\t\ttrinket.scriptDataNum2 = (trinket.scriptDataNum2 ?? 0) + additionalHealthBuff;\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,7 +9,7 @@ exports.GilneanThornedRose = {
|
|
|
9
9
|
avenge: (entity, input) => {
|
|
10
10
|
const source = entity;
|
|
11
11
|
const { board, hero, otherBoard, otherHero, gameState } = input;
|
|
12
|
-
(0, utils_1.addStatsToBoard)(source, board, hero,
|
|
12
|
+
(0, utils_1.addStatsToBoard)(source, board, hero, 4, 5, gameState);
|
|
13
13
|
for (const minion of board) {
|
|
14
14
|
(0, attack_1.dealDamageToMinion)(minion, board, hero, source, 1, otherBoard, otherHero, gameState);
|
|
15
15
|
gameState.spectator.registerPowerTarget(source, minion, board, hero, otherHero);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gilnean-thorned-rose.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/gilnean-thorned-rose.ts"],"names":[],"mappings":";;;AAGA,uDAAgE;AAEhE,0CAAiD;AAGpC,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,sBAA+C;IACxD,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,MAAkC,EAAE,KAAkB,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,MAAqB,CAAC;QACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAChE,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC3B,IAAA,2BAAkB,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAChF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const GilneanThornedRose: AvengeCard = {\r\n\tcardIds: [CardIds.GilneanThornedRose_BG30_MagicItem_864],\r\n\tbaseAvengeValue: () => 3,\r\n\tavenge: (entity: BoardEntity | BoardTrinket, input: AvengeInput) => {\r\n\t\tconst source = entity as BoardEntity;\r\n\t\tconst { board, hero, otherBoard, otherHero, gameState } = input;\r\n\t\taddStatsToBoard(source, board, hero,
|
|
1
|
+
{"version":3,"file":"gilnean-thorned-rose.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/gilnean-thorned-rose.ts"],"names":[],"mappings":";;;AAGA,uDAAgE;AAEhE,0CAAiD;AAGpC,QAAA,kBAAkB,GAAe;IAC7C,OAAO,EAAE,sBAA+C;IACxD,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,MAAkC,EAAE,KAAkB,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,MAAqB,CAAC;QACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAChE,IAAA,uBAAe,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC3B,IAAA,2BAAkB,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrF,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;SAChF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { dealDamageToMinion } from '../../../simulation/attack';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { addStatsToBoard } from '../../../utils';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const GilneanThornedRose: AvengeCard = {\r\n\tcardIds: [CardIds.GilneanThornedRose_BG30_MagicItem_864],\r\n\tbaseAvengeValue: () => 3,\r\n\tavenge: (entity: BoardEntity | BoardTrinket, input: AvengeInput) => {\r\n\t\tconst source = entity as BoardEntity;\r\n\t\tconst { board, hero, otherBoard, otherHero, gameState } = input;\r\n\t\taddStatsToBoard(source, board, hero, 4, 5, gameState);\r\n\t\tfor (const minion of board) {\r\n\t\t\tdealDamageToMinion(minion, board, hero, source, 1, otherBoard, otherHero, gameState);\r\n\t\t\tgameState.spectator.registerPowerTarget(source, minion, board, hero, otherHero);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -11,7 +11,7 @@ exports.MamaBearSticker = {
|
|
|
11
11
|
if (!(0, utils_1.hasCorrectTribe)(spawned, hero, reference_data_1.Race.BEAST, gameState.anomalies, gameState.allCards)) {
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
-
(0, stats_1.modifyStats)(spawned, _trinket,
|
|
14
|
+
(0, stats_1.modifyStats)(spawned, _trinket, 5, 5, board, hero, gameState);
|
|
15
15
|
gameState.spectator.registerPowerTarget(_trinket, spawned, board, null, null);
|
|
16
16
|
},
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mama-bear-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/mama-bear-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAuB;IAClD,OAAO,EAAE,sBAA4C;IACrD,cAAc,EAAE,CAAC,QAAsB,EAAE,KAAwB,EAAE,EAAE;QACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,IAAA,mBAAW,EAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7D,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const MamaBearSticker: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.MamaBearSticker_BG35_MagicItem_871],\r\n\tonOtherSpawned: (_trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tmodifyStats(spawned, _trinket,
|
|
1
|
+
{"version":3,"file":"mama-bear-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/mama-bear-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,eAAe,GAAuB;IAClD,OAAO,EAAE,sBAA4C;IACrD,cAAc,EAAE,CAAC,QAAsB,EAAE,KAAwB,EAAE,EAAE;QACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,IAAA,mBAAW,EAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7D,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const MamaBearSticker: OnOtherSpawnedCard = {\r\n\tcardIds: [CardIds.MamaBearSticker_BG35_MagicItem_871],\r\n\tonOtherSpawned: (_trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tmodifyStats(spawned, _trinket, 5, 5, board, hero, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(_trinket, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
|
|
@@ -7,7 +7,7 @@ exports.SkyGolemPortraitEnchantment = {
|
|
|
7
7
|
deathrattleSpawnEnchantmentEffect: (enchantment, minion, input) => {
|
|
8
8
|
const targets = input.boardWithDeadEntity.filter((e) => !e.definitelyDead && e.health > 0);
|
|
9
9
|
for (const target of targets) {
|
|
10
|
-
(0, stats_1.modifyStats)(target, minion,
|
|
10
|
+
(0, stats_1.modifyStats)(target, minion, 2, 2, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
|
|
11
11
|
input.gameState.spectator.registerPowerTarget(minion, target, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoardHero);
|
|
12
12
|
}
|
|
13
13
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-golem-portrait-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/sky-golem-portrait-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,2BAA2B,GAAoC;IAC3E,OAAO,EAAE,wBAAkE;IAC3E,iCAAiC,EAAE,CAClC,WAA6B,EAC7B,MAAsC,EACtC,KAAgC,EAC/B,EAAE;QACH,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,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;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEnchantment, BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleSpawnEnchantmentCard } from '../../card.interface';\r\n\r\nexport const SkyGolemPortraitEnchantment: DeathrattleSpawnEnchantmentCard = {\r\n\tcardIds: [CardIds.SkyGolemPortrait_SkywardEnchantment_BG35_MagicItem_740e2],\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tenchantment: BoardEnchantment,\r\n\t\tminion: BoardEntity | null | undefined,\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => {\r\n\t\tconst targets = input.boardWithDeadEntity.filter((e) => !e.definitelyDead && e.health > 0);\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\
|
|
1
|
+
{"version":3,"file":"sky-golem-portrait-enchantment.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/sky-golem-portrait-enchantment.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,2BAA2B,GAAoC;IAC3E,OAAO,EAAE,wBAAkE;IAC3E,iCAAiC,EAAE,CAClC,WAA6B,EAC7B,MAAsC,EACtC,KAAgC,EAC/B,EAAE;QACH,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,CAAC,EACD,CAAC,EACD,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,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;SACF;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAC","sourcesContent":["import { BoardEnchantment, BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleSpawnEnchantmentCard } from '../../card.interface';\r\n\r\nexport const SkyGolemPortraitEnchantment: DeathrattleSpawnEnchantmentCard = {\r\n\tcardIds: [CardIds.SkyGolemPortrait_SkywardEnchantment_BG35_MagicItem_740e2],\r\n\tdeathrattleSpawnEnchantmentEffect: (\r\n\t\tenchantment: BoardEnchantment,\r\n\t\tminion: BoardEntity | null | undefined,\r\n\t\tinput: DeathrattleTriggeredInput,\r\n\t) => {\r\n\t\tconst targets = input.boardWithDeadEntity.filter((e) => !e.definitelyDead && e.health > 0);\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\t2,\r\n\t\t\t\t2,\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\tinput.gameState.spectator.registerPowerTarget(\r\n\t\t\t\tminion,\r\n\t\t\t\ttarget,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.otherBoardHero,\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n};\r\n"]}
|
|
@@ -9,7 +9,7 @@ exports.StormcoilSticker = {
|
|
|
9
9
|
var _a;
|
|
10
10
|
const trinket = listener;
|
|
11
11
|
trinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;
|
|
12
|
-
if (trinket.scriptDataNum1 >=
|
|
12
|
+
if (trinket.scriptDataNum1 >= 8) {
|
|
13
13
|
trinket.scriptDataNum1 = 0;
|
|
14
14
|
const randomMech = input.gameState.cardsData.getRandomMinionForTribe(reference_data_1.Race.MECH, (_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 6, []);
|
|
15
15
|
if (randomMech) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stormcoil-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/stormcoil-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qEAAmE;AAGtD,QAAA,gBAAgB,GAAmC;IAC/D,OAAO,EAAE,sBAA6C;IACtD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CACnE,qBAAI,CAAC,IAAI,EACT,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,EAC1B,EAAE,CACF,CAAC;YACF,IAAI,UAAU,EAAE;gBACf,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvE;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const StormcoilSticker: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.StormcoilSticker_BG35_MagicItem_302],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;\r\n\t\tif (trinket.scriptDataNum1 >=
|
|
1
|
+
{"version":3,"file":"stormcoil-sticker.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/stormcoil-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAKpD,qEAAmE;AAGtD,QAAA,gBAAgB,GAAmC;IAC/D,OAAO,EAAE,sBAA6C;IACtD,0BAA0B,EAAE,CAAC,QAAoC,EAAE,KAAsC,EAAE,EAAE;;QAC5G,MAAM,OAAO,GAAG,QAAwB,CAAC;QACzC,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CACnE,qBAAI,CAAC,IAAI,EACT,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,EAC1B,EAAE,CACF,CAAC;YACF,IAAI,UAAU,EAAE;gBACf,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACvE;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnAfterFriendlyMinionDeathInput } from '../../../simulation/attack';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnAfterFriendlyMinionDeathCard } from '../../card.interface';\r\n\r\nexport const StormcoilSticker: OnAfterFriendlyMinionDeathCard = {\r\n\tcardIds: [CardIds.StormcoilSticker_BG35_MagicItem_302],\r\n\tonAfterFriendlyMinionDeath: (listener: BoardEntity | BoardTrinket, input: OnAfterFriendlyMinionDeathInput) => {\r\n\t\tconst trinket = listener as BoardTrinket;\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;\r\n\t\tif (trinket.scriptDataNum1 >= 8) {\r\n\t\t\ttrinket.scriptDataNum1 = 0;\r\n\t\t\tconst randomMech = input.gameState.cardsData.getRandomMinionForTribe(\r\n\t\t\t\tRace.MECH,\r\n\t\t\t\tinput.hero.tavernTier ?? 6,\r\n\t\t\t\t[],\r\n\t\t\t);\r\n\t\t\tif (randomMech) {\r\n\t\t\t\taddCardsInHand(input.hero, input.board, [randomMech], input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|
|
@@ -6,10 +6,11 @@ const stats_1 = require("../../../simulation/stats");
|
|
|
6
6
|
exports.TigerCarving = {
|
|
7
7
|
cardIds: ["BG30_MagicItem_427", "BG30_MagicItem_427t"],
|
|
8
8
|
afterFriendlyMinionDamaged: (trinket, input) => {
|
|
9
|
-
const target = (0, utils_1.pickRandomAlive)(input.board);
|
|
9
|
+
const target = (0, utils_1.pickRandomAlive)(input.board.filter((e) => e !== input.damagedEntity));
|
|
10
10
|
if (target) {
|
|
11
|
-
const
|
|
12
|
-
|
|
11
|
+
const atk = trinket.cardId === "BG30_MagicItem_427t" ? 6 : 3;
|
|
12
|
+
const health = trinket.cardId === "BG30_MagicItem_427t" ? 2 : 1;
|
|
13
|
+
(0, stats_1.modifyStats)(target, trinket, atk, health, input.board, input.hero, input.gameState);
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiger-carving.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/tiger-carving.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tiger-carving.js","sourceRoot":"","sources":["../../../../src/cards/impl/trinket/tiger-carving.ts"],"names":[],"mappings":";;;AAGA,mDAA0D;AAC1D,qDAAwD;AAG3C,QAAA,YAAY,GAA0C;IAClE,OAAO,EAAE,6CAAqG;IAC9G,0BAA0B,EAAE,CAAC,OAAqB,EAAE,KAAsC,EAAE,EAAE;QAC7F,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACrF,IAAI,MAAM,EAAE;YACX,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,0BAA+D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,0BAA+D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACpF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { AfterFriendlyMinionDamagedInput } from 'src/simulation/damage-effects';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterFriendlyMinionDamagedTrinketCard } from '../../card.interface';\r\n\r\nexport const TigerCarving: AfterFriendlyMinionDamagedTrinketCard = {\r\n\tcardIds: [CardIds.TigerCarving_BG30_MagicItem_427, CardIds.TigerCarving_TigerCarvingToken_BG30_MagicItem_427t],\r\n\tafterFriendlyMinionDamaged: (trinket: BoardTrinket, input: AfterFriendlyMinionDamagedInput) => {\r\n\t\tconst target = pickRandomAlive(input.board.filter((e) => e !== input.damagedEntity));\r\n\t\tif (target) {\r\n\t\t\tconst atk = trinket.cardId === CardIds.TigerCarving_TigerCarvingToken_BG30_MagicItem_427t ? 6 : 3;\r\n\t\t\tconst health = trinket.cardId === CardIds.TigerCarving_TigerCarvingToken_BG30_MagicItem_427t ? 2 : 1;\r\n\t\t\tmodifyStats(target, trinket, atk, health, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
|