@firestone-hs/simulate-bgs-battle 1.1.294 → 1.1.295
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 +2 -2
- package/dist/cards/cards-data.js.map +1 -1
- package/dist/simulation/battlecries.js +3 -3
- package/dist/simulation/battlecries.js.map +1 -1
- package/dist/simulation/deathrattle-spawns.js +1 -1
- package/dist/simulation/deathrattle-spawns.js.map +1 -1
- package/package.json +1 -1
package/dist/cards/cards-data.js
CHANGED
|
@@ -111,8 +111,6 @@ class CardsData {
|
|
|
111
111
|
case "BG22_HERO_003_Buddy_G":
|
|
112
112
|
case "BG22_HERO_003p":
|
|
113
113
|
case "BG22_HERO_002p":
|
|
114
|
-
case "BG27_029":
|
|
115
|
-
case "BG27_029_G":
|
|
116
114
|
return 2;
|
|
117
115
|
case "BG21_030":
|
|
118
116
|
case "BG21_030_G":
|
|
@@ -122,6 +120,8 @@ class CardsData {
|
|
|
122
120
|
case "BG21_038":
|
|
123
121
|
case "BG21_038_G":
|
|
124
122
|
case "BG27_Reward_502":
|
|
123
|
+
case "BG27_029":
|
|
124
|
+
case "BG27_029_G":
|
|
125
125
|
return 3;
|
|
126
126
|
case "BG21_007":
|
|
127
127
|
case "BG21_007_G":
|
|
@@ -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\tCardIds,\r\n\tGameTag,\r\n\tisBattlegroundsCard,\r\n\tNON_BUYABLE_MINION_IDS,\r\n\tRace,\r\n\tReferenceCard,\r\n} from '@firestone-hs/reference-data';\r\nimport { groupByFunction, pickRandom } from '../services/utils';\r\nimport { getRaceEnum, hasMechanic, isCorrectTribe } from '../utils';\r\n\r\nexport const START_OF_COMBAT_CARD_IDS = [\r\n\tCardIds.CorruptedMyrmidon_BG23_012,\r\n\tCardIds.CorruptedMyrmidon_BG23_012_G,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy_G,\r\n\tCardIds.MantidQueen_BG22_402,\r\n\tCardIds.MantidQueen_BG22_402_G,\r\n\tCardIds.PrizedPromoDrake_BG21_014,\r\n\tCardIds.PrizedPromoDrake_BG21_014_G,\r\n\tCardIds.RedWhelp_BGS_019,\r\n\tCardIds.RedWhelp_TB_BaconUps_102,\r\n\tCardIds.AmberGuardian_BG24_500,\r\n\tCardIds.AmberGuardian_BG24_500_G,\r\n\tCardIds.InterrogatorWhitemane_BG24_704,\r\n\tCardIds.InterrogatorWhitemane_BG24_704_G,\r\n\tCardIds.Soulsplitter_BG25_023,\r\n\tCardIds.Soulsplitter_BG25_023_G,\r\n\tCardIds.ChoralMrrrglr_BG26_354,\r\n\tCardIds.ChoralMrrrglr_BG26_354_G,\r\n\tCardIds.SanctumRester_BG26_356,\r\n\tCardIds.SanctumRester_BG26_356_G,\r\n\tCardIds.CarbonicCopy_BG27_503,\r\n\tCardIds.CarbonicCopy_BG27_503_G,\r\n];\r\nexport const WHELP_CARD_IDS = [\r\n\tCardIds.RedWhelp_BGS_019,\r\n\tCardIds.RedWhelp_TB_BaconUps_102,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n];\r\n\r\nexport class CardsData {\r\n\tpublic ghastcoilerSpawns: readonly string[];\r\n\t// public shredderSpawns: readonly string[];\r\n\tpublic validDeathrattles: readonly string[];\r\n\tpublic impMamaSpawns: readonly string[];\r\n\tpublic demonSpawns: readonly string[];\r\n\tpublic gentleDjinniSpawns: readonly string[];\r\n\t// public festergutSpawns: readonly string[];\r\n\tpublic kilrekSpawns: readonly string[];\r\n\tpublic brannEpicEggSpawns: readonly string[];\r\n\t// public sneedsSpawns: readonly string[];\r\n\t// public treasureChestSpawns: readonly string[];\r\n\tpublic pirateSpawns: readonly string[];\r\n\tpublic beastSpawns: readonly string[];\r\n\tpublic scrapScraperSpawns: readonly string[];\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\tthis.pool = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => isBattlegroundsCard(card))\r\n\t\t\t.filter((card) => !NON_BUYABLE_MINION_IDS.includes(card.id as CardIds))\r\n\t\t\t.filter((card) => !!card.techLevel)\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\t\t.filter((card) => !hasMechanic(card, GameTag[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.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, '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.validDeathrattles = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, '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.brannEpicEggSpawns = this.pool.filter((card) => hasMechanic(card, 'BATTLECRY')).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[GameTag.MAGNETIC]))\r\n\t\t\t.map((card) => card.id);\r\n\r\n\t\tthis.putricidePool1 = this.pool.filter((card) => card.battlegroundsPutridicePool1).map((card) => card.id);\r\n\t\tthis.putricidePool2 = this.pool.filter((card) => card.battlegroundsPutridicePool2).map((card) => card.id);\r\n\t\tthis.putridicePool2ForEternalSummoner = this.pool\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\tswitch (cardId) {\r\n\t\t\tcase CardIds.BirdBuddy_BG21_002:\r\n\t\t\tcase CardIds.BirdBuddy_BG21_002_G:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014_G:\r\n\t\t\t// Not technically an avenge, but behaves as if\r\n\t\t\tcase CardIds.ShadowyConstruct_BG25_HERO_103_Buddy:\r\n\t\t\tcase CardIds.ShadowyConstruct_BG25_HERO_103_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\tcase CardIds.IceSickle:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.GhoulOfTheFeast_BG25_002:\r\n\t\t\tcase CardIds.GhoulOfTheFeast_BG25_002_G:\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.VanndarStormpike_LeadTheStormpikes:\r\n\t\t\tcase CardIds.Drekthar_LeadTheFrostwolves:\r\n\t\t\tcase CardIds.ChampionOfThePrimus_BG27_029:\r\n\t\t\tcase CardIds.ChampionOfThePrimus_BG27_029_G:\r\n\t\t\t\treturn 2;\r\n\t\t\tcase CardIds.BuddingGreenthumb_BG21_030:\r\n\t\t\tcase CardIds.BuddingGreenthumb_BG21_030_G:\r\n\t\t\t// case CardIds.FrostwolfLieutenant:\r\n\t\t\t// case CardIds.FrostwolfLieutenantBattlegrounds:\r\n\t\t\tcase CardIds.Onyxia_Broodmother:\r\n\t\t\tcase CardIds.PashmarTheVengeful_BG23_014:\r\n\t\t\tcase CardIds.PashmarTheVengeful_BG23_014_G:\r\n\t\t\tcase CardIds.WitchwingNestmatron_BG21_038:\r\n\t\t\tcase CardIds.WitchwingNestmatron_BG21_038_G:\r\n\t\t\tcase CardIds.BoomSquad_BG27_Reward_502:\r\n\t\t\t\treturn 3;\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\t\tcase CardIds.Sisefin_BG21_009:\r\n\t\t\tcase CardIds.Sisefin_BG21_009_G:\r\n\t\t\tcase CardIds.TonyTwoTusk_BG21_031:\r\n\t\t\tcase CardIds.TonyTwoTusk_BG21_031_G:\r\n\t\t\tcase CardIds.ScrapScraper_BG26_148:\r\n\t\t\tcase 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.RelentlessMurghoul_BG27_010:\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010_G:\r\n\t\t\t\treturn 4;\r\n\t\t}\r\n\t\treturn 0;\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, this.minionsForTier, minionsForTier);\r\n\t\t}\r\n\t\treturn pickRandom(this.minionsForTier[tavernTier ?? 1])?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTribe(tribe: Race, tavernLimitUpper: number): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => this.isValidTribe([tribe], m.races))\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tprivate isGolden(card: ReferenceCard): boolean {\r\n\t\treturn !!card.battlegroundsNormalDbfId;\r\n\t}\r\n\r\n\tprivate isValidTribe(validTribes: readonly Race[], cardRaces: readonly string[]): boolean {\r\n\t\t// Blank races are always ok\r\n\t\tif (!cardRaces?.length) {\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"]}
|
|
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\tCardIds,\r\n\tGameTag,\r\n\tisBattlegroundsCard,\r\n\tNON_BUYABLE_MINION_IDS,\r\n\tRace,\r\n\tReferenceCard,\r\n} from '@firestone-hs/reference-data';\r\nimport { groupByFunction, pickRandom } from '../services/utils';\r\nimport { getRaceEnum, hasMechanic, isCorrectTribe } from '../utils';\r\n\r\nexport const START_OF_COMBAT_CARD_IDS = [\r\n\tCardIds.CorruptedMyrmidon_BG23_012,\r\n\tCardIds.CorruptedMyrmidon_BG23_012_G,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy_G,\r\n\tCardIds.MantidQueen_BG22_402,\r\n\tCardIds.MantidQueen_BG22_402_G,\r\n\tCardIds.PrizedPromoDrake_BG21_014,\r\n\tCardIds.PrizedPromoDrake_BG21_014_G,\r\n\tCardIds.RedWhelp_BGS_019,\r\n\tCardIds.RedWhelp_TB_BaconUps_102,\r\n\tCardIds.AmberGuardian_BG24_500,\r\n\tCardIds.AmberGuardian_BG24_500_G,\r\n\tCardIds.InterrogatorWhitemane_BG24_704,\r\n\tCardIds.InterrogatorWhitemane_BG24_704_G,\r\n\tCardIds.Soulsplitter_BG25_023,\r\n\tCardIds.Soulsplitter_BG25_023_G,\r\n\tCardIds.ChoralMrrrglr_BG26_354,\r\n\tCardIds.ChoralMrrrglr_BG26_354_G,\r\n\tCardIds.SanctumRester_BG26_356,\r\n\tCardIds.SanctumRester_BG26_356_G,\r\n\tCardIds.CarbonicCopy_BG27_503,\r\n\tCardIds.CarbonicCopy_BG27_503_G,\r\n];\r\nexport const WHELP_CARD_IDS = [\r\n\tCardIds.RedWhelp_BGS_019,\r\n\tCardIds.RedWhelp_TB_BaconUps_102,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n];\r\n\r\nexport class CardsData {\r\n\tpublic ghastcoilerSpawns: readonly string[];\r\n\t// public shredderSpawns: readonly string[];\r\n\tpublic validDeathrattles: readonly string[];\r\n\tpublic impMamaSpawns: readonly string[];\r\n\tpublic demonSpawns: readonly string[];\r\n\tpublic gentleDjinniSpawns: readonly string[];\r\n\t// public festergutSpawns: readonly string[];\r\n\tpublic kilrekSpawns: readonly string[];\r\n\tpublic brannEpicEggSpawns: readonly string[];\r\n\t// public sneedsSpawns: readonly string[];\r\n\t// public treasureChestSpawns: readonly string[];\r\n\tpublic pirateSpawns: readonly string[];\r\n\tpublic beastSpawns: readonly string[];\r\n\tpublic scrapScraperSpawns: readonly string[];\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\tthis.pool = this.allCards\r\n\t\t\t.getCards()\r\n\t\t\t.filter((card) => isBattlegroundsCard(card))\r\n\t\t\t.filter((card) => !NON_BUYABLE_MINION_IDS.includes(card.id as CardIds))\r\n\t\t\t.filter((card) => !!card.techLevel)\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\t\t.filter((card) => !hasMechanic(card, GameTag[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.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, '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.validDeathrattles = this.pool\r\n\t\t\t.filter((card) => hasMechanic(card, '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.brannEpicEggSpawns = this.pool.filter((card) => hasMechanic(card, 'BATTLECRY')).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[GameTag.MAGNETIC]))\r\n\t\t\t.map((card) => card.id);\r\n\r\n\t\tthis.putricidePool1 = this.pool.filter((card) => card.battlegroundsPutridicePool1).map((card) => card.id);\r\n\t\tthis.putricidePool2 = this.pool.filter((card) => card.battlegroundsPutridicePool2).map((card) => card.id);\r\n\t\tthis.putridicePool2ForEternalSummoner = this.pool\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\tswitch (cardId) {\r\n\t\t\tcase CardIds.BirdBuddy_BG21_002:\r\n\t\t\tcase CardIds.BirdBuddy_BG21_002_G:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014:\r\n\t\t\tcase CardIds.HungeringAbomination_BG25_014_G:\r\n\t\t\t// Not technically an avenge, but behaves as if\r\n\t\t\tcase CardIds.ShadowyConstruct_BG25_HERO_103_Buddy:\r\n\t\t\tcase CardIds.ShadowyConstruct_BG25_HERO_103_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\tcase CardIds.IceSickle:\r\n\t\t\t\treturn 1;\r\n\t\t\tcase CardIds.GhoulOfTheFeast_BG25_002:\r\n\t\t\tcase CardIds.GhoulOfTheFeast_BG25_002_G:\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.VanndarStormpike_LeadTheStormpikes:\r\n\t\t\tcase CardIds.Drekthar_LeadTheFrostwolves:\r\n\t\t\t\treturn 2;\r\n\t\t\tcase CardIds.BuddingGreenthumb_BG21_030:\r\n\t\t\tcase CardIds.BuddingGreenthumb_BG21_030_G:\r\n\t\t\t// case CardIds.FrostwolfLieutenant:\r\n\t\t\t// case CardIds.FrostwolfLieutenantBattlegrounds:\r\n\t\t\tcase CardIds.Onyxia_Broodmother:\r\n\t\t\tcase CardIds.PashmarTheVengeful_BG23_014:\r\n\t\t\tcase CardIds.PashmarTheVengeful_BG23_014_G:\r\n\t\t\tcase CardIds.WitchwingNestmatron_BG21_038:\r\n\t\t\tcase CardIds.WitchwingNestmatron_BG21_038_G:\r\n\t\t\tcase CardIds.BoomSquad_BG27_Reward_502:\r\n\t\t\tcase CardIds.ChampionOfThePrimus_BG27_029:\r\n\t\t\tcase CardIds.ChampionOfThePrimus_BG27_029_G:\r\n\t\t\t\treturn 3;\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\t\tcase CardIds.Sisefin_BG21_009:\r\n\t\t\tcase CardIds.Sisefin_BG21_009_G:\r\n\t\t\tcase CardIds.TonyTwoTusk_BG21_031:\r\n\t\t\tcase CardIds.TonyTwoTusk_BG21_031_G:\r\n\t\t\tcase CardIds.ScrapScraper_BG26_148:\r\n\t\t\tcase 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.RelentlessMurghoul_BG27_010:\r\n\t\t\tcase CardIds.RelentlessMurghoul_BG27_010_G:\r\n\t\t\t\treturn 4;\r\n\t\t}\r\n\t\treturn 0;\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, this.minionsForTier, minionsForTier);\r\n\t\t}\r\n\t\treturn pickRandom(this.minionsForTier[tavernTier ?? 1])?.id;\r\n\t}\r\n\r\n\tpublic getRandomMinionForTribe(tribe: Race, tavernLimitUpper: number): string {\r\n\t\tconst pool = this.pool\r\n\t\t\t.filter((m) => this.isValidTribe([tribe], m.races))\r\n\t\t\t.filter((m) => m.techLevel <= tavernLimitUpper);\r\n\t\treturn pickRandom(pool)?.id;\r\n\t}\r\n\r\n\tprivate isGolden(card: ReferenceCard): boolean {\r\n\t\treturn !!card.battlegroundsNormalDbfId;\r\n\t}\r\n\r\n\tprivate isValidTribe(validTribes: readonly Race[], cardRaces: readonly string[]): boolean {\r\n\t\t// Blank races are always ok\r\n\t\tif (!cardRaces?.length) {\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"]}
|
|
@@ -88,7 +88,7 @@ const triggerBattlecry = (board, hero, entity, otherBoard, otherHero, allCards,
|
|
|
88
88
|
break;
|
|
89
89
|
case "BG26_522":
|
|
90
90
|
case "BG26_522_G":
|
|
91
|
-
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId), entity.cardId === "BG26_522" ?
|
|
91
|
+
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId), entity.cardId === "BG26_522" ? 2 : 4, entity.cardId === "BG26_522" ? 2 : 4, allCards, spectator, reference_data_1.Race[reference_data_1.Race.DEMON]);
|
|
92
92
|
break;
|
|
93
93
|
case "BG26_159":
|
|
94
94
|
case "BG26_159_G":
|
|
@@ -119,7 +119,7 @@ const triggerBattlecry = (board, hero, entity, otherBoard, otherHero, allCards,
|
|
|
119
119
|
break;
|
|
120
120
|
case "BG26_963":
|
|
121
121
|
case "BG26_963_G":
|
|
122
|
-
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId),
|
|
122
|
+
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId), entity.cardId === "BG26_963" ? 3 : 6, entity.cardId === "BG26_963" ? 1 : 2, allCards, spectator, reference_data_1.Race[reference_data_1.Race.DRAGON]);
|
|
123
123
|
break;
|
|
124
124
|
case "BG20_202":
|
|
125
125
|
case "BG20_202_G":
|
|
@@ -238,7 +238,7 @@ const triggerBattlecry = (board, hero, entity, otherBoard, otherHero, allCards,
|
|
|
238
238
|
break;
|
|
239
239
|
case "BG26_001":
|
|
240
240
|
case "BG26_001_G":
|
|
241
|
-
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId), entity.cardId === "BG26_001" ? 2 : 4, entity.cardId === "BG26_001" ?
|
|
241
|
+
(0, utils_2.addStatsToBoard)(entity, board.filter((e) => e.entityId != entity.entityId), entity.cardId === "BG26_001" ? 2 : 4, entity.cardId === "BG26_001" ? 2 : 4, allCards, spectator);
|
|
242
242
|
break;
|
|
243
243
|
case "BG27_019":
|
|
244
244
|
case "BG27_019_G":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"battlecries.js","sourceRoot":"","sources":["../../src/simulation/battlecries.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddCardsInHand,\r\n\taddStatsToBoard,\r\n\tafterStatsUpdate,\r\n\tgetRandomAliveMinion,\r\n\tgrantStatsToMinionsOfEachType,\r\n\thasCorrectTribe,\r\n\tisMinionGolden,\r\n\tmakeMinionGolden,\r\n\tmodifyAttack,\r\n\tmodifyHealth,\r\n} from '../utils';\r\nimport { playBloodGemsOn } from './blood-gems';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const computeBattlecryMultiplier = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tsharedState: SharedState,\r\n): number => {\r\n\tconst brann = board.find(\r\n\t\t(entity) =>\r\n\t\t\tentity.cardId === CardIds.BrannBronzebeard_BG_LOE_077 ||\r\n\t\t\tentity.cardId === CardIds.MoiraBronzebeard_BG27_518,\r\n\t);\r\n\tconst goldenBrann = board.find(\r\n\t\t(entity) =>\r\n\t\t\tentity.cardId === CardIds.BrannBronzebeard_TB_BaconUps_045 ||\r\n\t\t\tentity.cardId === CardIds.MoiraBronzebeard_BG27_518_G,\r\n\t);\r\n\tconst echoesOfArgus = sharedState.anomalies.includes(CardIds.EchoesOfArgus_BG27_Anomaly_802) ? 1 : 0;\r\n\tconst multiplier = echoesOfArgus + (goldenBrann ? 3 : brann ? 2 : 1);\r\n\treturn multiplier;\r\n};\r\n\r\nexport const triggerBattlecry = (\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\tentity: BoardEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n) => {\r\n\tconst allMinions = [...board, ...otherBoard];\r\n\tconst totalTriggers = computeBattlecryMultiplier(board, hero, sharedState);\r\n\tfor (let z = 0; z < totalTriggers; z++) {\r\n\t\tlet hasTriggered = true;\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.RazorfenGeomancer_BG20_100:\r\n\t\t\tcase CardIds.RazorfenGeomancer_BG20_100_G:\r\n\t\t\t\tconst razorFenCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.RazorfenGeomancer_BG20_100\r\n\t\t\t\t\t\t? [CardIds.BloodGem]\r\n\t\t\t\t\t\t: [CardIds.BloodGem, CardIds.BloodGem];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, razorFenCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.RockpoolHunter_BG_UNG_073:\r\n\t\t\tcase CardIds.RockpoolHunter_TB_BaconUps_061:\r\n\t\t\t\tconst rockPoolTarget = getRandomAliveMinion(board, Race.MURLOC, allCards);\r\n\t\t\t\tconst rockpoolStats = entity.cardId === CardIds.RockpoolHunter_BG_UNG_073 ? 1 : 2;\r\n\t\t\t\tmodifyAttack(rockPoolTarget, rockpoolStats, board, allCards);\r\n\t\t\t\tmodifyHealth(rockPoolTarget, rockpoolStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(rockPoolTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, rockPoolTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ShellCollector_BG23_002:\r\n\t\t\tcase CardIds.ShellCollector_BG23_002_G:\r\n\t\t\t\tconst shellCollectorCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.ShellCollector_BG23_002\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, shellCollectorCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MenagerieMug_BGS_082:\r\n\t\t\tcase CardIds.MenagerieMug_TB_BaconUps_144:\r\n\t\t\t\tconst menagerieMugStats = entity.cardId === CardIds.MenagerieMug_BGS_082 ? 1 : 2;\r\n\t\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tmenagerieMugStats,\r\n\t\t\t\t\tmenagerieMugStats,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\t3,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MenagerieJug_BGS_083:\r\n\t\t\tcase CardIds.MenagerieJug_TB_BaconUps_145:\r\n\t\t\t\tconst menagerieJugStats = entity.cardId === CardIds.MenagerieJug_BGS_083 ? 2 : 4;\r\n\t\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tmenagerieJugStats,\r\n\t\t\t\t\tmenagerieJugStats,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\t3,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.NerubianDeathswarmer_BG25_011:\r\n\t\t\tcase CardIds.NerubianDeathswarmer_BG25_011_G:\r\n\t\t\t\tconst nerubianDeathswarmerStats = entity.cardId === CardIds.NerubianDeathswarmer_BG25_011 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.UndeadAttackBonus =\r\n\t\t\t\t\t(hero.globalInfo?.UndeadAttackBonus ?? 0) + nerubianDeathswarmerStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SparringPartner_BG_AT_069:\r\n\t\t\tcase CardIds.SparringPartner_BG_AT_069_G:\r\n\t\t\t\tconst sparringPartnersTargets = allMinions.filter((e) => !e.taunt);\r\n\t\t\t\tconst sparringPartnersTarget = pickRandom(sparringPartnersTargets);\r\n\t\t\t\tif (sparringPartnersTarget) {\r\n\t\t\t\t\tsparringPartnersTarget.taunt = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.TwilightEmissary_BGS_038:\r\n\t\t\tcase CardIds.TwilightEmissary_TB_BaconUps_108:\r\n\t\t\t\tconst twilightEmissaryTarget = getRandomAliveMinion(board, Race.DRAGON, allCards);\r\n\t\t\t\tconst twilightEmissaryStats = entity.cardId === CardIds.TwilightEmissary_BGS_038 ? 2 : 4;\r\n\t\t\t\tmodifyAttack(twilightEmissaryTarget, twilightEmissaryStats, board, allCards);\r\n\t\t\t\tmodifyHealth(twilightEmissaryTarget, twilightEmissaryStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(twilightEmissaryTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, twilightEmissaryTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.BloodsailCannoneer_BGS_053:\r\n\t\t\tcase CardIds.BloodsailCannoneer_TB_BaconUps_138:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.BloodsailCannoneer_BGS_053 ? 3 : 6,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.PIRATE],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ColdlightSeerLegacy_BG_EX1_103:\r\n\t\t\tcase CardIds.ColdlightSeerLegacy_TB_BaconUps_064:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tentity.cardId === CardIds.ColdlightSeerLegacy_BG_EX1_103 ? 2 : 4,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.MURLOC],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.KeyboardIgniter_BG26_522:\r\n\t\t\tcase CardIds.KeyboardIgniter_BG26_522_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.KeyboardIgniter_BG26_522 ? 1 : 2,\r\n\t\t\t\t\tentity.cardId === CardIds.KeyboardIgniter_BG26_522 ? 2 : 4,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.DEMON],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MoonBaconJazzer_BG26_159:\r\n\t\t\tcase CardIds.MoonBaconJazzer_BG26_159_G:\r\n\t\t\t\tconst moonBaconJazzerStats = entity.cardId === CardIds.MoonBaconJazzer_BG26_159 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t\t\t\t(hero.globalInfo?.BloodGemHealthBonus ?? 0) + moonBaconJazzerStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Smogger_BG21_021:\r\n\t\t\tcase CardIds.Smogger_BG21_021_G:\r\n\t\t\t\tconst smoggerLoops = entity.cardId === CardIds.Smogger_BG21_021 ? 1 : 2;\r\n\t\t\t\tfor (let i = 0; i < smoggerLoops; i++) {\r\n\t\t\t\t\tconst smoggerTarget = getRandomAliveMinion(board, Race.ELEMENTAL, allCards);\r\n\t\t\t\t\tconst smoggerStats = hero.tavernTier ?? 3;\r\n\t\t\t\t\tmodifyAttack(smoggerTarget, smoggerStats, board, allCards);\r\n\t\t\t\t\tmodifyHealth(smoggerTarget, smoggerStats, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(smoggerTarget, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, smoggerTarget, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.AnnihilanBattlemaster_BGS_010:\r\n\t\t\tcase CardIds.AnnihilanBattlemaster_TB_BaconUps_083:\r\n\t\t\t\t// TODO: pass damage taken info\r\n\t\t\t\tconst startingHp = hero.cardId === CardIds.Patchwerk_TB_BaconShop_HERO_34 ? 60 : 30;\r\n\t\t\t\tconst hpMissing = startingHp - hero.hpLeft;\r\n\t\t\t\tconst annihilanStats = (entity.cardId === CardIds.AnnihilanBattlemaster_BGS_010 ? 2 : 4) * hpMissing;\r\n\t\t\t\tmodifyHealth(entity, annihilanStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ElectricSynthesizer_BG26_963:\r\n\t\t\tcase CardIds.ElectricSynthesizer_BG26_963_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tentity.cardId === CardIds.ElectricSynthesizer_BG26_963 ? 3 : 6,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.DRAGON],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Necrolyte_BG20_202:\r\n\t\t\tcase CardIds.Necrolyte_BG20_202_G:\r\n\t\t\t\tconst necrolyteBloodGems = entity.cardId === CardIds.Necrolyte_BG20_202 ? 2 : 4;\r\n\t\t\t\tconst necrolyteTarget = pickRandom(board);\r\n\t\t\t\tplayBloodGemsOn(necrolyteTarget, necrolyteBloodGems, board, hero, allCards, spectator);\r\n\t\t\t\tspectator.registerPowerTarget(entity, necrolyteTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.PrimalfinLookout_BGS_020:\r\n\t\t\tcase CardIds.PrimalfinLookout_TB_BaconUps_089:\r\n\t\t\t\tconst primalfinLookoutCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.PrimalfinLookout_BGS_020\r\n\t\t\t\t\t\t? [cardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1)]\r\n\t\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t\tcardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1),\r\n\t\t\t\t\t\t\t\tcardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1),\r\n\t\t\t\t\t\t ];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, primalfinLookoutCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.StrongshellScavenger_BG_ICC_807:\r\n\t\t\tcase CardIds.StrongshellScavenger_TB_BaconUps_072:\r\n\t\t\t\tconst strongshellScavengerStats = entity.cardId === CardIds.StrongshellScavenger_BG_ICC_807 ? 2 : 4;\r\n\t\t\t\tconst strongshellScavengerTargets = board\r\n\t\t\t\t\t.filter((e) => e.entityId != entity.entityId)\r\n\t\t\t\t\t.filter((e) => e.taunt);\r\n\t\t\t\tstrongshellScavengerTargets.forEach((target) => {\r\n\t\t\t\t\tmodifyAttack(target, strongshellScavengerStats, board, allCards);\r\n\t\t\t\t\tmodifyHealth(target, strongshellScavengerStats, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(target, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, target, board);\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.VigilantStoneborn_BG24_023:\r\n\t\t\tcase CardIds.VigilantStoneborn_BG24_023_G:\r\n\t\t\t\tconst vigilantStonebornTarget = pickRandom(board);\r\n\t\t\t\tconst vigilantStonebornStats = entity.cardId === CardIds.VigilantStoneborn_BG24_023 ? 6 : 12;\r\n\t\t\t\tvigilantStonebornTarget.taunt = true;\r\n\t\t\t\tmodifyHealth(vigilantStonebornTarget, vigilantStonebornStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(vigilantStonebornTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, vigilantStonebornTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Bonemare_BG26_ICC_705:\r\n\t\t\tcase CardIds.Bonemare_BG26_ICC_705_G:\r\n\t\t\t\tconst bonemareTarget = pickRandom(board);\r\n\t\t\t\tconst bonemareStats = entity.cardId === CardIds.Bonemare_BG26_ICC_705 ? 4 : 8;\r\n\t\t\t\tbonemareTarget.taunt = true;\r\n\t\t\t\tmodifyAttack(bonemareTarget, bonemareStats, board, allCards);\r\n\t\t\t\tmodifyHealth(bonemareTarget, bonemareStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(bonemareTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, bonemareTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.GeneralDrakkisath_BG25_309:\r\n\t\t\tcase CardIds.GeneralDrakkisath_BG25_309_G:\r\n\t\t\t\tconst generalDrakkisathCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.GeneralDrakkisath_BG25_309\r\n\t\t\t\t\t\t? [CardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t]\r\n\t\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\t\t\t\t\t\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\t\t\t\t\t ];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, generalDrakkisathCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.KingBagurgle_BGS_030:\r\n\t\t\tcase CardIds.KingBagurgle_TB_BaconUps_100:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.KingBagurgle_BGS_030 ? 2 : 4,\r\n\t\t\t\t\tentity.cardId === CardIds.KingBagurgle_BGS_030 ? 3 : 6,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.MURLOC],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\t// Not correct, but only used to trigger the \"add cards in hand\" effect\r\n\t\t\tcase CardIds.Murozond_BGS_043:\r\n\t\t\tcase CardIds.Murozond_TB_BaconUps_110:\r\n\t\t\t\tconst murozondCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.Murozond_BGS_043\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, murozondCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.TavernTempest_BGS_123:\r\n\t\t\tcase CardIds.TavernTempest_TB_BaconUps_162:\r\n\t\t\t\tconst tavernTempestCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.TavernTempest_BGS_123\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, tavernTempestCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MechaJaraxxus_BG25_807:\r\n\t\t\tcase CardIds.MechaJaraxxus_BG25_807_G:\r\n\t\t\t\tconst mechaJaraxxusCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.MechaJaraxxus_BG25_807\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, mechaJaraxxusCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.OozelingGladiator_BG27_002:\r\n\t\t\tcase CardIds.OozelingGladiator_BG27_002_G:\r\n\t\t\t\tconst oozelingCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.OozelingGladiator_BG27_002\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore, CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore, CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, oozelingCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.UtherTheLightbringer_BG23_190:\r\n\t\t\tcase CardIds.UtherTheLightbringer_BG23_190_G:\r\n\t\t\t\tconst utherTarget = pickRandom(allMinions);\r\n\t\t\t\tconst utherStats = entity.cardId === CardIds.UtherTheLightbringer_BG23_190 ? 15 : 30;\r\n\t\t\t\tutherTarget.attack = utherStats;\r\n\t\t\t\tutherTarget.health = utherStats;\r\n\t\t\t\tutherTarget.maxHealth = utherStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.IronGroundskeeper_BG27_000:\r\n\t\t\tcase CardIds.IronGroundskeeper_BG27_000_G:\r\n\t\t\t\tconst ironGroundskeeperTargets = allMinions;\r\n\t\t\t\tconst ironGroundskeeperTarget = pickRandom(ironGroundskeeperTargets);\r\n\t\t\t\tironGroundskeeperTarget.taunt = !ironGroundskeeperTarget.taunt;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LivingConstellation_BG27_001:\r\n\t\t\tcase CardIds.LivingConstellation_BG27_001_G:\r\n\t\t\t\tconst differentTypes = extractUniqueTribes(board, allCards);\r\n\t\t\t\tconst livingConstellationStats =\r\n\t\t\t\t\t(entity.cardId === CardIds.LivingConstellation_BG27_001 ? 1 : 2) * differentTypes.length;\r\n\t\t\t\tconst livingConstellationTarget = pickRandom(board);\r\n\t\t\t\tmodifyAttack(livingConstellationTarget, livingConstellationStats, board, allCards);\r\n\t\t\t\tmodifyHealth(livingConstellationTarget, livingConstellationStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(livingConstellationTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, livingConstellationTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.FairyTaleCaroler_BG26_001:\r\n\t\t\tcase CardIds.FairyTaleCaroler_BG26_001_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.FairyTaleCaroler_BG26_001 ? 2 : 4,\r\n\t\t\t\t\tentity.cardId === CardIds.FairyTaleCaroler_BG26_001 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SparkLing_BG27_019:\r\n\t\t\tcase CardIds.SparkLing_BG27_019_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\totherBoard,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.EmergentFlame_BG27_018:\r\n\t\t\tcase CardIds.EmergentFlame_BG27_018_G:\r\n\t\t\t\tconst emergentFlameTarget = pickRandom(\r\n\t\t\t\t\tboard.filter((e) => hasCorrectTribe(e, Race.ELEMENTAL, allCards)),\r\n\t\t\t\t);\r\n\t\t\t\tconst emergentFlameStats = entity.cardId === CardIds.EmergentFlame_BG27_018 ? 1 : 2;\r\n\t\t\t\tmodifyAttack(emergentFlameTarget, emergentFlameStats, board, allCards);\r\n\t\t\t\tmodifyHealth(emergentFlameTarget, emergentFlameStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(emergentFlameTarget, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ArgentBraggart_BG_SCH_149:\r\n\t\t\tcase CardIds.ArgentBraggart_TB_BaconUps_308:\r\n\t\t\t\tconst highestAttack = Math.max(...allMinions.map((minion) => minion.attack));\r\n\t\t\t\tconst highestHealth = Math.max(...allMinions.map((minion) => minion.health));\r\n\t\t\t\tconst argentBraggartMultiplier = entity.cardId === CardIds.ArgentBraggart_BG_SCH_149 ? 1 : 2;\r\n\t\t\t\tentity.attack = argentBraggartMultiplier * highestAttack;\r\n\t\t\t\tentity.health = argentBraggartMultiplier * highestHealth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CaptainSanders_BG25_034:\r\n\t\t\tcase CardIds.CaptainSanders_BG25_034_G:\r\n\t\t\t\tconst captainSandersTarget = pickRandom(board.filter((e) => !isMinionGolden(e, allCards)));\r\n\t\t\t\tif (captainSandersTarget) {\r\n\t\t\t\t\tmakeMinionGolden(captainSandersTarget, entity, board, allCards, spectator);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SanguineChampion_BG23_017:\r\n\t\t\tcase CardIds.SanguineChampion_BG23_017_G:\r\n\t\t\t\tconst sanguineChampionStats = entity.cardId === CardIds.SanguineChampion_BG23_017 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.BloodGemAttackBonus += sanguineChampionStats;\r\n\t\t\t\thero.globalInfo.BloodGemHealthBonus += sanguineChampionStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Murky_BG24_012:\r\n\t\t\tcase CardIds.Murky_BG24_012_G:\r\n\t\t\t\tconst murkyScale = entity.cardId === CardIds.Murky_BG24_012 ? 1 : 2;\r\n\t\t\t\tconst murkyBattlecriesPlayed = entity.scriptDataNum1 > 0 ? entity.scriptDataNum1 / murkyScale - 1 : 0;\r\n\t\t\t\tconst murkyStats = murkyScale * (1 + murkyBattlecriesPlayed);\r\n\t\t\t\tconst murkyTarget = pickRandom(board.filter((e) => hasCorrectTribe(e, Race.MURLOC, allCards)));\r\n\t\t\t\tmodifyAttack(murkyTarget, murkyStats, board, allCards);\r\n\t\t\t\tmodifyHealth(murkyTarget, murkyStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(murkyTarget, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\thasTriggered = false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (hasTriggered) {\r\n\t\t\tafterBattlecryTriggered(entity, board, hero, otherBoard, otherHero, allCards, cardsData, spectator);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst afterBattlecryTriggered = (\r\n\tentity: BoardEntity,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tspectator: Spectator,\r\n) => {\r\n\tboard\r\n\t\t.filter((e) => e.cardId === CardIds.KalecgosArcaneAspect_BGS_041)\r\n\t\t.forEach((e) => {\r\n\t\t\taddStatsToBoard(entity, board, 1, 1, allCards, spectator, Race[Race.DRAGON]);\r\n\t\t});\r\n\tboard\r\n\t\t.filter((e) => e.cardId === CardIds.KalecgosArcaneAspect_TB_BaconUps_109)\r\n\t\t.forEach((e) => {\r\n\t\t\taddStatsToBoard(entity, board, 2, 2, allCards, spectator, Race[Race.DRAGON]);\r\n\t\t});\r\n};\r\n\r\n// TODO: this is probably too slow\r\nconst extractUniqueTribes = (board: BoardEntity[], allCards: AllCardsService): readonly Race[] => {\r\n\tconst boardReferenceCards = board.map((m) => allCards.getCard(m.cardId));\r\n\tconst minionsPlayedWithTribes = boardReferenceCards.filter((c) => !!c.races?.length);\r\n\tconst minionsToProcess: /*Mutable<ReferenceCard & { picked?: boolean }>*/ any[] = [\r\n\t\t...minionsPlayedWithTribes\r\n\t\t\t.filter((c) => !c.races.includes(Race[Race.ALL]))\r\n\t\t\t.map((c) => ({ ...c, races: [...c.races] })),\r\n\t];\r\n\r\n\tconst uniqueTribes: Race[] = [];\r\n\tconst maxTribesPerMinion = 2;\r\n\tfor (let i = 1; i <= maxTribesPerMinion; i++) {\r\n\t\tlet dirty = true;\r\n\t\twhile (dirty) {\r\n\t\t\tdirty = false;\r\n\t\t\tfor (let j = 0; j < minionsToProcess.length; j++) {\r\n\t\t\t\tconst minion = minionsToProcess[j];\r\n\t\t\t\t// console.debug('considering minion', minion.name, minion.races);\r\n\t\t\t\tif (!minion.picked && minion.races.length > 0 && minion.races.length <= i) {\r\n\t\t\t\t\tconst raceToAdd: string = minion.races[0];\r\n\t\t\t\t\tuniqueTribes.push(Race[raceToAdd]);\r\n\t\t\t\t\t// console.debug('added', raceToAdd, uniqueTribes);\r\n\t\t\t\t\tfor (const m of minionsToProcess) {\r\n\t\t\t\t\t\tm.races = m.races.filter((r) => r !== raceToAdd);\r\n\t\t\t\t\t\t// console.debug('updates races', m.name, m.races, raceToAdd);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tminion.picked = true;\r\n\t\t\t\t\tdirty = true;\r\n\t\t\t\t\t// Restart the loop, so we're not dependant on the order in which we process things\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// minionsToProcess = minionsToProcess.filter((c) => !c.picked);\r\n\t\t}\r\n\t}\r\n\r\n\tuniqueTribes.push(\r\n\t\t...minionsPlayedWithTribes\r\n\t\t\t.filter((m) => m.races.includes(Race[Race.ALL]))\r\n\t\t\t.flatMap((m) => m.races)\r\n\t\t\t.map((r: string) => Race[r]),\r\n\t);\r\n\treturn uniqueTribes;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"battlecries.js","sourceRoot":"","sources":["../../src/simulation/battlecries.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddCardsInHand,\r\n\taddStatsToBoard,\r\n\tafterStatsUpdate,\r\n\tgetRandomAliveMinion,\r\n\tgrantStatsToMinionsOfEachType,\r\n\thasCorrectTribe,\r\n\tisMinionGolden,\r\n\tmakeMinionGolden,\r\n\tmodifyAttack,\r\n\tmodifyHealth,\r\n} from '../utils';\r\nimport { playBloodGemsOn } from './blood-gems';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const computeBattlecryMultiplier = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tsharedState: SharedState,\r\n): number => {\r\n\tconst brann = board.find(\r\n\t\t(entity) =>\r\n\t\t\tentity.cardId === CardIds.BrannBronzebeard_BG_LOE_077 ||\r\n\t\t\tentity.cardId === CardIds.MoiraBronzebeard_BG27_518,\r\n\t);\r\n\tconst goldenBrann = board.find(\r\n\t\t(entity) =>\r\n\t\t\tentity.cardId === CardIds.BrannBronzebeard_TB_BaconUps_045 ||\r\n\t\t\tentity.cardId === CardIds.MoiraBronzebeard_BG27_518_G,\r\n\t);\r\n\tconst echoesOfArgus = sharedState.anomalies.includes(CardIds.EchoesOfArgus_BG27_Anomaly_802) ? 1 : 0;\r\n\tconst multiplier = echoesOfArgus + (goldenBrann ? 3 : brann ? 2 : 1);\r\n\treturn multiplier;\r\n};\r\n\r\nexport const triggerBattlecry = (\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\tentity: BoardEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n) => {\r\n\tconst allMinions = [...board, ...otherBoard];\r\n\tconst totalTriggers = computeBattlecryMultiplier(board, hero, sharedState);\r\n\tfor (let z = 0; z < totalTriggers; z++) {\r\n\t\tlet hasTriggered = true;\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.RazorfenGeomancer_BG20_100:\r\n\t\t\tcase CardIds.RazorfenGeomancer_BG20_100_G:\r\n\t\t\t\tconst razorFenCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.RazorfenGeomancer_BG20_100\r\n\t\t\t\t\t\t? [CardIds.BloodGem]\r\n\t\t\t\t\t\t: [CardIds.BloodGem, CardIds.BloodGem];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, razorFenCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.RockpoolHunter_BG_UNG_073:\r\n\t\t\tcase CardIds.RockpoolHunter_TB_BaconUps_061:\r\n\t\t\t\tconst rockPoolTarget = getRandomAliveMinion(board, Race.MURLOC, allCards);\r\n\t\t\t\tconst rockpoolStats = entity.cardId === CardIds.RockpoolHunter_BG_UNG_073 ? 1 : 2;\r\n\t\t\t\tmodifyAttack(rockPoolTarget, rockpoolStats, board, allCards);\r\n\t\t\t\tmodifyHealth(rockPoolTarget, rockpoolStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(rockPoolTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, rockPoolTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ShellCollector_BG23_002:\r\n\t\t\tcase CardIds.ShellCollector_BG23_002_G:\r\n\t\t\t\tconst shellCollectorCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.ShellCollector_BG23_002\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, shellCollectorCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MenagerieMug_BGS_082:\r\n\t\t\tcase CardIds.MenagerieMug_TB_BaconUps_144:\r\n\t\t\t\tconst menagerieMugStats = entity.cardId === CardIds.MenagerieMug_BGS_082 ? 1 : 2;\r\n\t\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tmenagerieMugStats,\r\n\t\t\t\t\tmenagerieMugStats,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\t3,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MenagerieJug_BGS_083:\r\n\t\t\tcase CardIds.MenagerieJug_TB_BaconUps_145:\r\n\t\t\t\tconst menagerieJugStats = entity.cardId === CardIds.MenagerieJug_BGS_083 ? 2 : 4;\r\n\t\t\t\tgrantStatsToMinionsOfEachType(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\tmenagerieJugStats,\r\n\t\t\t\t\tmenagerieJugStats,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\t3,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.NerubianDeathswarmer_BG25_011:\r\n\t\t\tcase CardIds.NerubianDeathswarmer_BG25_011_G:\r\n\t\t\t\tconst nerubianDeathswarmerStats = entity.cardId === CardIds.NerubianDeathswarmer_BG25_011 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.UndeadAttackBonus =\r\n\t\t\t\t\t(hero.globalInfo?.UndeadAttackBonus ?? 0) + nerubianDeathswarmerStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SparringPartner_BG_AT_069:\r\n\t\t\tcase CardIds.SparringPartner_BG_AT_069_G:\r\n\t\t\t\tconst sparringPartnersTargets = allMinions.filter((e) => !e.taunt);\r\n\t\t\t\tconst sparringPartnersTarget = pickRandom(sparringPartnersTargets);\r\n\t\t\t\tif (sparringPartnersTarget) {\r\n\t\t\t\t\tsparringPartnersTarget.taunt = true;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.TwilightEmissary_BGS_038:\r\n\t\t\tcase CardIds.TwilightEmissary_TB_BaconUps_108:\r\n\t\t\t\tconst twilightEmissaryTarget = getRandomAliveMinion(board, Race.DRAGON, allCards);\r\n\t\t\t\tconst twilightEmissaryStats = entity.cardId === CardIds.TwilightEmissary_BGS_038 ? 2 : 4;\r\n\t\t\t\tmodifyAttack(twilightEmissaryTarget, twilightEmissaryStats, board, allCards);\r\n\t\t\t\tmodifyHealth(twilightEmissaryTarget, twilightEmissaryStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(twilightEmissaryTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, twilightEmissaryTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.BloodsailCannoneer_BGS_053:\r\n\t\t\tcase CardIds.BloodsailCannoneer_TB_BaconUps_138:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.BloodsailCannoneer_BGS_053 ? 3 : 6,\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.PIRATE],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ColdlightSeerLegacy_BG_EX1_103:\r\n\t\t\tcase CardIds.ColdlightSeerLegacy_TB_BaconUps_064:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tentity.cardId === CardIds.ColdlightSeerLegacy_BG_EX1_103 ? 2 : 4,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.MURLOC],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.KeyboardIgniter_BG26_522:\r\n\t\t\tcase CardIds.KeyboardIgniter_BG26_522_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.KeyboardIgniter_BG26_522 ? 2 : 4,\r\n\t\t\t\t\tentity.cardId === CardIds.KeyboardIgniter_BG26_522 ? 2 : 4,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.DEMON],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MoonBaconJazzer_BG26_159:\r\n\t\t\tcase CardIds.MoonBaconJazzer_BG26_159_G:\r\n\t\t\t\tconst moonBaconJazzerStats = entity.cardId === CardIds.MoonBaconJazzer_BG26_159 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t\t\t\t(hero.globalInfo?.BloodGemHealthBonus ?? 0) + moonBaconJazzerStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Smogger_BG21_021:\r\n\t\t\tcase CardIds.Smogger_BG21_021_G:\r\n\t\t\t\tconst smoggerLoops = entity.cardId === CardIds.Smogger_BG21_021 ? 1 : 2;\r\n\t\t\t\tfor (let i = 0; i < smoggerLoops; i++) {\r\n\t\t\t\t\tconst smoggerTarget = getRandomAliveMinion(board, Race.ELEMENTAL, allCards);\r\n\t\t\t\t\tconst smoggerStats = hero.tavernTier ?? 3;\r\n\t\t\t\t\tmodifyAttack(smoggerTarget, smoggerStats, board, allCards);\r\n\t\t\t\t\tmodifyHealth(smoggerTarget, smoggerStats, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(smoggerTarget, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, smoggerTarget, board);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.AnnihilanBattlemaster_BGS_010:\r\n\t\t\tcase CardIds.AnnihilanBattlemaster_TB_BaconUps_083:\r\n\t\t\t\t// TODO: pass damage taken info\r\n\t\t\t\tconst startingHp = hero.cardId === CardIds.Patchwerk_TB_BaconShop_HERO_34 ? 60 : 30;\r\n\t\t\t\tconst hpMissing = startingHp - hero.hpLeft;\r\n\t\t\t\tconst annihilanStats = (entity.cardId === CardIds.AnnihilanBattlemaster_BGS_010 ? 2 : 4) * hpMissing;\r\n\t\t\t\tmodifyHealth(entity, annihilanStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(entity, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, entity, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ElectricSynthesizer_BG26_963:\r\n\t\t\tcase CardIds.ElectricSynthesizer_BG26_963_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.ElectricSynthesizer_BG26_963 ? 3 : 6,\r\n\t\t\t\t\tentity.cardId === CardIds.ElectricSynthesizer_BG26_963 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.DRAGON],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Necrolyte_BG20_202:\r\n\t\t\tcase CardIds.Necrolyte_BG20_202_G:\r\n\t\t\t\tconst necrolyteBloodGems = entity.cardId === CardIds.Necrolyte_BG20_202 ? 2 : 4;\r\n\t\t\t\tconst necrolyteTarget = pickRandom(board);\r\n\t\t\t\tplayBloodGemsOn(necrolyteTarget, necrolyteBloodGems, board, hero, allCards, spectator);\r\n\t\t\t\tspectator.registerPowerTarget(entity, necrolyteTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.PrimalfinLookout_BGS_020:\r\n\t\t\tcase CardIds.PrimalfinLookout_TB_BaconUps_089:\r\n\t\t\t\tconst primalfinLookoutCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.PrimalfinLookout_BGS_020\r\n\t\t\t\t\t\t? [cardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1)]\r\n\t\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t\tcardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1),\r\n\t\t\t\t\t\t\t\tcardsData.getRandomMinionForTribe(Race.MURLOC, hero.tavernTier ?? 1),\r\n\t\t\t\t\t\t ];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, primalfinLookoutCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.StrongshellScavenger_BG_ICC_807:\r\n\t\t\tcase CardIds.StrongshellScavenger_TB_BaconUps_072:\r\n\t\t\t\tconst strongshellScavengerStats = entity.cardId === CardIds.StrongshellScavenger_BG_ICC_807 ? 2 : 4;\r\n\t\t\t\tconst strongshellScavengerTargets = board\r\n\t\t\t\t\t.filter((e) => e.entityId != entity.entityId)\r\n\t\t\t\t\t.filter((e) => e.taunt);\r\n\t\t\t\tstrongshellScavengerTargets.forEach((target) => {\r\n\t\t\t\t\tmodifyAttack(target, strongshellScavengerStats, board, allCards);\r\n\t\t\t\t\tmodifyHealth(target, strongshellScavengerStats, board, allCards);\r\n\t\t\t\t\tafterStatsUpdate(target, board, allCards);\r\n\t\t\t\t\tspectator.registerPowerTarget(entity, target, board);\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.VigilantStoneborn_BG24_023:\r\n\t\t\tcase CardIds.VigilantStoneborn_BG24_023_G:\r\n\t\t\t\tconst vigilantStonebornTarget = pickRandom(board);\r\n\t\t\t\tconst vigilantStonebornStats = entity.cardId === CardIds.VigilantStoneborn_BG24_023 ? 6 : 12;\r\n\t\t\t\tvigilantStonebornTarget.taunt = true;\r\n\t\t\t\tmodifyHealth(vigilantStonebornTarget, vigilantStonebornStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(vigilantStonebornTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, vigilantStonebornTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Bonemare_BG26_ICC_705:\r\n\t\t\tcase CardIds.Bonemare_BG26_ICC_705_G:\r\n\t\t\t\tconst bonemareTarget = pickRandom(board);\r\n\t\t\t\tconst bonemareStats = entity.cardId === CardIds.Bonemare_BG26_ICC_705 ? 4 : 8;\r\n\t\t\t\tbonemareTarget.taunt = true;\r\n\t\t\t\tmodifyAttack(bonemareTarget, bonemareStats, board, allCards);\r\n\t\t\t\tmodifyHealth(bonemareTarget, bonemareStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(bonemareTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, bonemareTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.GeneralDrakkisath_BG25_309:\r\n\t\t\tcase CardIds.GeneralDrakkisath_BG25_309_G:\r\n\t\t\t\tconst generalDrakkisathCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.GeneralDrakkisath_BG25_309\r\n\t\t\t\t\t\t? [CardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t]\r\n\t\t\t\t\t\t: [\r\n\t\t\t\t\t\t\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\t\t\t\t\t\t\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\t\t\t\t\t\t ];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, generalDrakkisathCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.KingBagurgle_BGS_030:\r\n\t\t\tcase CardIds.KingBagurgle_TB_BaconUps_100:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.KingBagurgle_BGS_030 ? 2 : 4,\r\n\t\t\t\t\tentity.cardId === CardIds.KingBagurgle_BGS_030 ? 3 : 6,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t\tRace[Race.MURLOC],\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\t// Not correct, but only used to trigger the \"add cards in hand\" effect\r\n\t\t\tcase CardIds.Murozond_BGS_043:\r\n\t\t\tcase CardIds.Murozond_TB_BaconUps_110:\r\n\t\t\t\tconst murozondCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.Murozond_BGS_043\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, murozondCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.TavernTempest_BGS_123:\r\n\t\t\tcase CardIds.TavernTempest_TB_BaconUps_162:\r\n\t\t\t\tconst tavernTempestCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.TavernTempest_BGS_123\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, tavernTempestCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.MechaJaraxxus_BG25_807:\r\n\t\t\tcase CardIds.MechaJaraxxus_BG25_807_G:\r\n\t\t\t\tconst mechaJaraxxusCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.MechaJaraxxus_BG25_807\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, mechaJaraxxusCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.OozelingGladiator_BG27_002:\r\n\t\t\tcase CardIds.OozelingGladiator_BG27_002_G:\r\n\t\t\t\tconst oozelingCardsToAdd =\r\n\t\t\t\t\tentity.cardId === CardIds.OozelingGladiator_BG27_002\r\n\t\t\t\t\t\t? [CardIds.TheCoinCore, CardIds.TheCoinCore]\r\n\t\t\t\t\t\t: [CardIds.TheCoinCore, CardIds.TheCoinCore, CardIds.TheCoinCore, CardIds.TheCoinCore];\r\n\t\t\t\taddCardsInHand(hero, board, allCards, spectator, oozelingCardsToAdd);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.UtherTheLightbringer_BG23_190:\r\n\t\t\tcase CardIds.UtherTheLightbringer_BG23_190_G:\r\n\t\t\t\tconst utherTarget = pickRandom(allMinions);\r\n\t\t\t\tconst utherStats = entity.cardId === CardIds.UtherTheLightbringer_BG23_190 ? 15 : 30;\r\n\t\t\t\tutherTarget.attack = utherStats;\r\n\t\t\t\tutherTarget.health = utherStats;\r\n\t\t\t\tutherTarget.maxHealth = utherStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.IronGroundskeeper_BG27_000:\r\n\t\t\tcase CardIds.IronGroundskeeper_BG27_000_G:\r\n\t\t\t\tconst ironGroundskeeperTargets = allMinions;\r\n\t\t\t\tconst ironGroundskeeperTarget = pickRandom(ironGroundskeeperTargets);\r\n\t\t\t\tironGroundskeeperTarget.taunt = !ironGroundskeeperTarget.taunt;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.LivingConstellation_BG27_001:\r\n\t\t\tcase CardIds.LivingConstellation_BG27_001_G:\r\n\t\t\t\tconst differentTypes = extractUniqueTribes(board, allCards);\r\n\t\t\t\tconst livingConstellationStats =\r\n\t\t\t\t\t(entity.cardId === CardIds.LivingConstellation_BG27_001 ? 1 : 2) * differentTypes.length;\r\n\t\t\t\tconst livingConstellationTarget = pickRandom(board);\r\n\t\t\t\tmodifyAttack(livingConstellationTarget, livingConstellationStats, board, allCards);\r\n\t\t\t\tmodifyHealth(livingConstellationTarget, livingConstellationStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(livingConstellationTarget, board, allCards);\r\n\t\t\t\tspectator.registerPowerTarget(entity, livingConstellationTarget, board);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.FairyTaleCaroler_BG26_001:\r\n\t\t\tcase CardIds.FairyTaleCaroler_BG26_001_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.FairyTaleCaroler_BG26_001 ? 2 : 4,\r\n\t\t\t\t\tentity.cardId === CardIds.FairyTaleCaroler_BG26_001 ? 2 : 4,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SparkLing_BG27_019:\r\n\t\t\tcase CardIds.SparkLing_BG27_019_G:\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tboard.filter((e) => e.entityId != entity.entityId),\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\totherBoard,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tentity.cardId === CardIds.SparkLing_BG27_019 ? 1 : 2,\r\n\t\t\t\t\tallCards,\r\n\t\t\t\t\tspectator,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.EmergentFlame_BG27_018:\r\n\t\t\tcase CardIds.EmergentFlame_BG27_018_G:\r\n\t\t\t\tconst emergentFlameTarget = pickRandom(\r\n\t\t\t\t\tboard.filter((e) => hasCorrectTribe(e, Race.ELEMENTAL, allCards)),\r\n\t\t\t\t);\r\n\t\t\t\tconst emergentFlameStats = entity.cardId === CardIds.EmergentFlame_BG27_018 ? 1 : 2;\r\n\t\t\t\tmodifyAttack(emergentFlameTarget, emergentFlameStats, board, allCards);\r\n\t\t\t\tmodifyHealth(emergentFlameTarget, emergentFlameStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(emergentFlameTarget, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.ArgentBraggart_BG_SCH_149:\r\n\t\t\tcase CardIds.ArgentBraggart_TB_BaconUps_308:\r\n\t\t\t\tconst highestAttack = Math.max(...allMinions.map((minion) => minion.attack));\r\n\t\t\t\tconst highestHealth = Math.max(...allMinions.map((minion) => minion.health));\r\n\t\t\t\tconst argentBraggartMultiplier = entity.cardId === CardIds.ArgentBraggart_BG_SCH_149 ? 1 : 2;\r\n\t\t\t\tentity.attack = argentBraggartMultiplier * highestAttack;\r\n\t\t\t\tentity.health = argentBraggartMultiplier * highestHealth;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.CaptainSanders_BG25_034:\r\n\t\t\tcase CardIds.CaptainSanders_BG25_034_G:\r\n\t\t\t\tconst captainSandersTarget = pickRandom(board.filter((e) => !isMinionGolden(e, allCards)));\r\n\t\t\t\tif (captainSandersTarget) {\r\n\t\t\t\t\tmakeMinionGolden(captainSandersTarget, entity, board, allCards, spectator);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.SanguineChampion_BG23_017:\r\n\t\t\tcase CardIds.SanguineChampion_BG23_017_G:\r\n\t\t\t\tconst sanguineChampionStats = entity.cardId === CardIds.SanguineChampion_BG23_017 ? 1 : 2;\r\n\t\t\t\thero.globalInfo.BloodGemAttackBonus += sanguineChampionStats;\r\n\t\t\t\thero.globalInfo.BloodGemHealthBonus += sanguineChampionStats;\r\n\t\t\t\tbreak;\r\n\t\t\tcase CardIds.Murky_BG24_012:\r\n\t\t\tcase CardIds.Murky_BG24_012_G:\r\n\t\t\t\tconst murkyScale = entity.cardId === CardIds.Murky_BG24_012 ? 1 : 2;\r\n\t\t\t\tconst murkyBattlecriesPlayed = entity.scriptDataNum1 > 0 ? entity.scriptDataNum1 / murkyScale - 1 : 0;\r\n\t\t\t\tconst murkyStats = murkyScale * (1 + murkyBattlecriesPlayed);\r\n\t\t\t\tconst murkyTarget = pickRandom(board.filter((e) => hasCorrectTribe(e, Race.MURLOC, allCards)));\r\n\t\t\t\tmodifyAttack(murkyTarget, murkyStats, board, allCards);\r\n\t\t\t\tmodifyHealth(murkyTarget, murkyStats, board, allCards);\r\n\t\t\t\tafterStatsUpdate(murkyTarget, board, allCards);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\thasTriggered = false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (hasTriggered) {\r\n\t\t\tafterBattlecryTriggered(entity, board, hero, otherBoard, otherHero, allCards, cardsData, spectator);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst afterBattlecryTriggered = (\r\n\tentity: BoardEntity,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tspectator: Spectator,\r\n) => {\r\n\tboard\r\n\t\t.filter((e) => e.cardId === CardIds.KalecgosArcaneAspect_BGS_041)\r\n\t\t.forEach((e) => {\r\n\t\t\taddStatsToBoard(entity, board, 1, 1, allCards, spectator, Race[Race.DRAGON]);\r\n\t\t});\r\n\tboard\r\n\t\t.filter((e) => e.cardId === CardIds.KalecgosArcaneAspect_TB_BaconUps_109)\r\n\t\t.forEach((e) => {\r\n\t\t\taddStatsToBoard(entity, board, 2, 2, allCards, spectator, Race[Race.DRAGON]);\r\n\t\t});\r\n};\r\n\r\n// TODO: this is probably too slow\r\nconst extractUniqueTribes = (board: BoardEntity[], allCards: AllCardsService): readonly Race[] => {\r\n\tconst boardReferenceCards = board.map((m) => allCards.getCard(m.cardId));\r\n\tconst minionsPlayedWithTribes = boardReferenceCards.filter((c) => !!c.races?.length);\r\n\tconst minionsToProcess: /*Mutable<ReferenceCard & { picked?: boolean }>*/ any[] = [\r\n\t\t...minionsPlayedWithTribes\r\n\t\t\t.filter((c) => !c.races.includes(Race[Race.ALL]))\r\n\t\t\t.map((c) => ({ ...c, races: [...c.races] })),\r\n\t];\r\n\r\n\tconst uniqueTribes: Race[] = [];\r\n\tconst maxTribesPerMinion = 2;\r\n\tfor (let i = 1; i <= maxTribesPerMinion; i++) {\r\n\t\tlet dirty = true;\r\n\t\twhile (dirty) {\r\n\t\t\tdirty = false;\r\n\t\t\tfor (let j = 0; j < minionsToProcess.length; j++) {\r\n\t\t\t\tconst minion = minionsToProcess[j];\r\n\t\t\t\t// console.debug('considering minion', minion.name, minion.races);\r\n\t\t\t\tif (!minion.picked && minion.races.length > 0 && minion.races.length <= i) {\r\n\t\t\t\t\tconst raceToAdd: string = minion.races[0];\r\n\t\t\t\t\tuniqueTribes.push(Race[raceToAdd]);\r\n\t\t\t\t\t// console.debug('added', raceToAdd, uniqueTribes);\r\n\t\t\t\t\tfor (const m of minionsToProcess) {\r\n\t\t\t\t\t\tm.races = m.races.filter((r) => r !== raceToAdd);\r\n\t\t\t\t\t\t// console.debug('updates races', m.name, m.races, raceToAdd);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tminion.picked = true;\r\n\t\t\t\t\tdirty = true;\r\n\t\t\t\t\t// Restart the loop, so we're not dependant on the order in which we process things\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// minionsToProcess = minionsToProcess.filter((c) => !c.picked);\r\n\t\t}\r\n\t}\r\n\r\n\tuniqueTribes.push(\r\n\t\t...minionsPlayedWithTribes\r\n\t\t\t.filter((m) => m.races.includes(Race[Race.ALL]))\r\n\t\t\t.flatMap((m) => m.races)\r\n\t\t\t.map((r: string) => Race[r]),\r\n\t);\r\n\treturn uniqueTribes;\r\n};\r\n"]}
|
|
@@ -225,7 +225,7 @@ const spawnEntitiesFromDeathrattle = (deadEntity, boardWithDeadEntity, boardWith
|
|
|
225
225
|
break;
|
|
226
226
|
case "BG21_025":
|
|
227
227
|
case "BG21_025_G":
|
|
228
|
-
const cardParam =
|
|
228
|
+
const cardParam = 6;
|
|
229
229
|
const entitiesToSpawn = Math.max(0, Math.min(cardParam, 7 - boardWithDeadEntity.length - spawnedEntities.length));
|
|
230
230
|
const buffAmount = (deadEntityCardId === "BG21_025_G" ? 2 : 1) * (cardParam - entitiesToSpawn);
|
|
231
231
|
spawnedEntities.push(...(0, exports.spawnEntities)(deadEntityCardId === "BG21_025_G"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deathrattle-spawns.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-spawns.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddCardsInHand,\r\n\taddStatsToBoard,\r\n\tbuildRandomUndeadCreation,\r\n\tbuildSingleBoardEntity,\r\n\tisCorrectTribe,\r\n\tstringifySimple,\r\n\tstringifySimpleCard,\r\n} from '../utils';\r\nimport { computeDeathrattleMultiplier } from './deathrattle-effects';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const spawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tboardToSpawnInto: BoardEntity[],\r\n\tboardToSpawnIntoHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n\tfriendly: boolean,\r\n\t// In most cases the business of knowing the number of minions to handle is left to the caller\r\n\tlimitSpawns: boolean,\r\n\tspawnReborn = false,\r\n\tuseKhadgar = true,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n\toriginalEntity: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (!cardId) {\r\n\t\tconsole.error(\r\n\t\t\t'Cannot spawn a minion without any cardId defined',\r\n\t\t\tstringifySimple(boardToSpawnInto, allCards),\r\n\t\t\tnew Error().stack,\r\n\t\t);\r\n\t}\r\n\tconst spawnMultiplier = useKhadgar\r\n\t\t? 2 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_BG_DAL_575).length || 1\r\n\t\t: 1;\r\n\tconst spawnMultiplierGolden = useKhadgar\r\n\t\t? 3 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_TB_BaconUps_034).length || 1\r\n\t\t: 1;\r\n\tconst minionsToSpawn = limitSpawns\r\n\t\t? Math.min(quantity * spawnMultiplier * spawnMultiplierGolden, 7 - boardToSpawnInto.length)\r\n\t\t: quantity * spawnMultiplier * spawnMultiplierGolden;\r\n\tconst result: BoardEntity[] = [];\r\n\tfor (let i = 0; i < minionsToSpawn; i++) {\r\n\t\tconst newMinion = buildSingleBoardEntity(\r\n\t\t\tcardId,\r\n\t\t\tboardToSpawnIntoHero,\r\n\t\t\tboardToSpawnInto,\r\n\t\t\tallCards,\r\n\t\t\tfriendly,\r\n\t\t\tsharedState.currentEntityId++,\r\n\t\t\tspawnReborn,\r\n\t\t\tcardsData,\r\n\t\t\tsharedState,\r\n\t\t\tboardEntityToSpawn,\r\n\t\t\toriginalEntity,\r\n\t\t);\r\n\t\tif (!newMinion.cardId) {\r\n\t\t\tconsole.warn('Invalid spawn', newMinion, cardId);\r\n\t\t}\r\n\t\tresult.push(newMinion);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const spawnEntitiesFromDeathrattle = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tentitiesDeadThisAttack: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspawns: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n): readonly BoardEntity[] => {\r\n\t// Because if the baron dies because of a cleave, it still applies its effect to the other entities that died this turn\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\t[...boardWithDeadEntity, ...entitiesDeadThisAttack],\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tsharedState,\r\n\t);\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\t// const otherBoardSpawnedEntities: BoardEntity[] = [];\r\n\tfor (let i = 0; i < multiplier; i++) {\r\n\t\tconst cardIds = [deadEntity.cardId, ...(deadEntity.additionalCards ?? [])];\r\n\t\tfor (const deadEntityCardId of cardIds) {\r\n\t\t\tswitch (deadEntityCardId) {\r\n\t\t\t\tcase CardIds.Mecharoo_BOT_445:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_BOT_445t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Mecharoo_TB_BaconUps_002:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_TB_BaconUps_002t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Manasaber_BG26_800:\r\n\t\t\t\tcase CardIds.Manasaber_BG26_800_G:\r\n\t\t\t\t\tconst cublingId =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.Manasaber_BG26_800_G\r\n\t\t\t\t\t\t\t? CardIds.Manasaber_CublingToken_BG26_800_Gt\r\n\t\t\t\t\t\t\t: CardIds.Manasaber_CublingToken_BG26_800t;\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tcublingId,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309:\r\n\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.PiggybackImp_BG_AV_309_G\r\n\t\t\t\t\t\t\t\t? CardIds.PiggybackImp_BackpiggyImpToken_BG_AV_309t\r\n\t\t\t\t\t\t\t\t: CardIds.PiggybackImp_BackpiggyImpToken_AV_309t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HandlessForsaken_BG25_010:\r\n\t\t\t\tcase CardIds.HandlessForsaken_BG25_010_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.HandlessForsaken_BG25_010_G\r\n\t\t\t\t\t\t\t\t? CardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EternalSummoner_BG25_009:\r\n\t\t\t\tcase CardIds.EternalSummoner_BG25_009_G:\r\n\t\t\t\t\t// TODO\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.EternalSummoner_BG25_009_G\r\n\t\t\t\t\t\t\t\t? CardIds.EternalKnight_BG25_008_G\r\n\t\t\t\t\t\t\t\t: CardIds.EternalKnight_BG25_008,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Scallywag_BGS_061:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Scallywag_SkyPirateToken_BGS_061t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Scallywag_TB_BaconUps_141:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Scallywag_SkyPirateToken_TB_BaconUps_141t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.IckyImp_BG21_029:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.IckyImp_BG21_029_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HarvestGolemLegacy_BG_EX1_556:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.DamagedGolemLegacy,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HarvestGolemLegacy_TB_BaconUps_006:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.HarvestGolem_DamagedGolemLegacyToken_TB_BaconUps_006t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SewerRat_BG19_010:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SewerRat_BG19_010_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010_Gt,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy:\r\n\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G:\r\n\t\t\t\t\tconst minionsToSpawnMawsworn =\r\n\t\t\t\t\t\tdeadEntityCardId === CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G ? 6 : 3;\r\n\t\t\t\t\tfor (let i = 0; i < minionsToSpawnMawsworn; i++) {\r\n\t\t\t\t\t\tconst minionCardId = spawns.getRandomMinionForTavernTier(1);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tminionCardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy:\r\n\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy_G:\r\n\t\t\t\t\tconst minionsToSpawnFestergut =\r\n\t\t\t\t\t\tdeadEntityCardId === CardIds.Festergut_BG25_HERO_100_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < minionsToSpawnFestergut; i++) {\r\n\t\t\t\t\t\tconst randomUndeadCreation = buildRandomUndeadCreation(\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\trandomUndeadCreation.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\trandomUndeadCreation,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KindlyGrandmother_KAR_005:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KindlyGrandmother_TB_BaconUps_004:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RatPack_BG_CFM_316:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RatPack_RatToken_BG_CFM_316t,\r\n\t\t\t\t\t\t\tdeadEntity.attack,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RatPack_TB_BaconUps_027:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RatPack_RatToken_TB_BaconUps_027t,\r\n\t\t\t\t\t\t\tdeadEntity.attack,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Imprisoner_BGS_014:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Imprisoner_TB_BaconUps_113:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.InfestedWolf_OG_216:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.InfestedWolf_Spider,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.InfestedWolf_TB_BaconUps_026:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.InfestedWolf_SpiderToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.TheBeastLegacy:\r\n\t\t\t\t// case CardIds.TheBeastBattlegrounds:\r\n\t\t\t\t// \totherBoardSpawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.FinkleEinhornLegacy,\r\n\t\t\t\t// \t\t\t1,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\t!deadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_BG_BOT_312:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_TB_BaconUps_032:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanoEgg_BOT_537:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_BOT_537t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanoEgg_TB_BaconUps_039:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_TB_BaconUps_039t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SavannahHighmaneLegacy_BG_EX1_534:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_BG_EX1_534t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SavannahHighmaneLegacy_TB_BaconUps_049:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_TB_BaconUps_049t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RingMatron_BG_DMF_533:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_BG_DMF_533t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RingMatron_TB_BaconUps_309:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_TB_BaconUps_309t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SatedThreshadon_UNG_010:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.PrimalfinTotem_PrimalfinToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SatedThreshadon_TB_BaconUps_052:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SatedThreshadon_PrimalfinToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Ghastcoiler_BGS_008:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[Math.floor(Math.random() * spawns.ghastcoilerSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[Math.floor(Math.random() * spawns.ghastcoilerSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.GentleDjinni_BGS_121:\r\n\t\t\t\tcase CardIds.GentleDjinni_TB_BaconUps_165:\r\n\t\t\t\t\tconst djinniSpawns = [];\r\n\t\t\t\t\tconst djinniToSpawnQuandtity = deadEntity.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < djinniToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\tdjinniSpawns.push(pickRandom(spawns.gentleDjinniSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (const djinniSpawn of djinniSpawns) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdjinniSpawn,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, djinniSpawns);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy:\r\n\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G:\r\n\t\t\t\t\tconst kilrekCardsToAddQuantity =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tconst kilrekCardsToAdd = [];\r\n\t\t\t\t\tfor (let i = 0; i < kilrekCardsToAddQuantity; i++) {\r\n\t\t\t\t\t\tkilrekCardsToAdd.push(pickRandom(spawns.demonSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, kilrekCardsToAdd);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy:\r\n\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G:\r\n\t\t\t\t\tconst brannSpawns = [];\r\n\t\t\t\t\tconst brannToSpawnQuandtity =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < brannToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\tbrannSpawns.push(pickRandom(spawns.brannEpicEggSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (const brannSpawn of brannSpawns) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tbrannSpawn,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, brannSpawns);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.Ghastcoiler_TRLA_149:\r\n\t\t\t\tcase CardIds.Ghastcoiler_TB_BaconUps_057:\r\n\t\t\t\t\tconst ghastcoilerLoop = deadEntity.cardId === CardIds.Ghastcoiler_TB_BaconUps_057 ? 4 : 2;\r\n\t\t\t\t\tfor (let i = 0; i < ghastcoilerLoop; i++) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * spawns.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Voidlord_BG_LOOT_368:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.VoidwalkerLegacy_BG_CS2_065,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Voidlord_TB_BaconUps_059:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Voidlord_VoidwalkerLegacyToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321:\r\n\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321_G:\r\n\t\t\t\t\tconst annoyOTroupeSpawns =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.AnnoyOTroupe_BG26_ETC_321_G\r\n\t\t\t\t\t\t\t? CardIds.AnnoyOTron_BG_GVG_085_G\r\n\t\t\t\t\t\t\t: CardIds.AnnoyOTron_BG_GVG_085;\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tannoyOTroupeSpawns,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.OmegaBuster_BG21_025:\r\n\t\t\t\tcase CardIds.OmegaBuster_BG21_025_G:\r\n\t\t\t\t\t// Here we have to truncate the spawned entities instead of letting the caller handle it,\r\n\t\t\t\t\t// because we need to know how many minions couldn't spawn so that we can apply the buff.\r\n\t\t\t\t\t// HOWEVER, this can cause an issue, if for instance a Scallywag token spawns, attacks right away,\r\n\t\t\t\t\t// and then Omega Buster spawns. In this case, it will not have yet processed the token's attack,\r\n\t\t\t\t\t// and will limit the spawns\r\n\t\t\t\t\tconst cardParam = 5;\r\n\t\t\t\t\tconst entitiesToSpawn = Math.max(\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tMath.min(cardParam, 7 - boardWithDeadEntity.length - spawnedEntities.length),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst buffAmount =\r\n\t\t\t\t\t\t(deadEntityCardId === CardIds.OmegaBuster_BG21_025_G ? 2 : 1) * (cardParam - entitiesToSpawn);\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.OmegaBuster_BG21_025_G\r\n\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t\r\n\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\tentitiesToSpawn,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t);\r\n\t\t\t\t\t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\tspawnedEntities,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.OmegaBusterBattlegrounds:\r\n\t\t\t\t// \tconst entitiesToSpawn2 = Math.min(6, 7 - boardWithDeadEntity.length);\r\n\t\t\t\t// \tconst buffAmount2 = 6 - entitiesToSpawn2;\r\n\t\t\t\t// \tspawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.ReplicatingMenace_MicrobotTokenBattlegrounds,\r\n\t\t\t\t// \t\t\tentitiesToSpawn2,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\tdeadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \taddStatsToBoard(deadEntity, boardWithDeadEntity, 2 * buffAmount2, 2 * buffAmount2, allCards, spectator, Race[Race.MECH]);\r\n\t\t\t\t// \t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t// \taddStatsToBoard(deadEntity, spawnedEntities, 2 * buffAmount2, 2 * buffAmount2, allCards, spectator, Race[Race.MECH]);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tcase CardIds.KangorsApprentice_BGS_012:\r\n\t\t\t\t\tconst cardIdsToSpawn = sharedState.deaths\r\n\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t// eslint-disable-next-line prettier/prettier\r\n\t\t\t\t\t\t.filter((entity) => isCorrectTribe(allCards.getCard(entity.cardId)?.races, Race.MECH))\r\n\t\t\t\t\t\t.slice(0, 2)\r\n\t\t\t\t\t\t.map((entity) => entity.cardId);\r\n\t\t\t\t\tcardIdsToSpawn.forEach((cardId) =>\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tcardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KangorsApprentice_TB_BaconUps_087:\r\n\t\t\t\t\tconst cardIdsToSpawn2 = sharedState.deaths\r\n\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t.filter((entity) => isCorrectTribe(allCards.getCard(entity.cardId)?.races, Race.MECH))\r\n\t\t\t\t\t\t.slice(0, 4)\r\n\t\t\t\t\t\t.map((entity) => entity.cardId);\r\n\t\t\t\t\tcardIdsToSpawn2.forEach((cardId) =>\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tcardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SlyRaptor_BG25_806:\r\n\t\t\t\tcase CardIds.SlyRaptor_BG25_806_G:\r\n\t\t\t\t\tconst raptorStat = deadEntity.cardId === CardIds.SlyRaptor_BG25_806_G ? 14 : 7;\r\n\t\t\t\t\tconst beastPool = spawns.beastSpawns.filter((id) => id !== CardIds.SlyRaptor_BG25_806);\r\n\t\t\t\t\tconst beastsFromRaptor = spawnEntities(\r\n\t\t\t\t\t\tbeastPool[Math.floor(Math.random() * beastPool.length)],\r\n\t\t\t\t\t\t1,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbeastsFromRaptor.forEach((b) => {\r\n\t\t\t\t\t\tb.attack = raptorStat;\r\n\t\t\t\t\t\tb.health = raptorStat;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tspawnedEntities.push(...beastsFromRaptor);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\r\n\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\r\n\t\t\t\t\tconst stats = deadEntity.scriptDataNum1;\r\n\t\t\t\t\tconst octosariSpawn =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.OctosariWrapGod_BG26_804_G\r\n\t\t\t\t\t\t\t? CardIds.TentacleOfOctosariToken_BG26_803_Gt\r\n\t\t\t\t\t\t\t: CardIds.TentacleOfOctosariToken_BG26_803t;\r\n\t\t\t\t\tconst octoSpawns = spawnEntities(\r\n\t\t\t\t\t\toctosariSpawn,\r\n\t\t\t\t\t\t1,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t);\r\n\t\t\t\t\toctoSpawns.forEach((b) => {\r\n\t\t\t\t\t\tb.attack += stats;\r\n\t\t\t\t\t\tb.health += stats;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tspawnedEntities.push(...octoSpawns);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Bassgill_BG26_350:\r\n\t\t\t\tcase CardIds.Bassgill_BG26_350_G:\r\n\t\t\t\t\tconst bassgillIterations = deadEntity.cardId === CardIds.Bassgill_BG26_350_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < bassgillIterations; i++) {\r\n\t\t\t\t\t\tconst hand = boardWithDeadEntityHero.hand?.filter((e) => !e.summonedFromHand) ?? [];\r\n\t\t\t\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\t\t\t\tconst highestHealthMinions = highestHealth\r\n\t\t\t\t\t\t\t? hand.filter((c) => c.health === highestHealth)\r\n\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\tif (spawn) {\r\n\t\t\t\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t\t\t\tspawn.summonedFromHand = true;\r\n\t\t\t\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\t\t\t\tconst bassgillSpawns = spawnEntities(\r\n\t\t\t\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawnedEntities.push(...bassgillSpawns);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_BG27_008:\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_BG27_008_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.MechanizedGiftHorse_BG27_008_G\r\n\t\t\t\t\t\t\t\t? CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_MechorseToken_BG27_008t:\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt\r\n\t\t\t\t\t\t\t\t? CardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.PapaBear_BG27_509:\r\n\t\t\t\tcase CardIds.PapaBear_BG27_509_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.PapaBear_BG27_509_G\r\n\t\t\t\t\t\t\t\t? CardIds.MamaBear_TB_BaconUps_090\r\n\t\t\t\t\t\t\t\t: CardIds.MamaBear_BGS_021,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// Putricide-only\r\n\t\t\t\tcase CardIds.FoulEgg_BG26_RLK_833:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.FoulEgg_FoulFowlToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.SplittingFesteroot_BG26_GIL_616:\r\n\t\t\t\t// \tspawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.SplittingFesteroot_SplittingSaplingToken,\r\n\t\t\t\t// \t\t\t2,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\tdeadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n\r\nexport const spawnEntitiesFromEnchantments = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tspawns: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n): readonly BoardEntity[] => {\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tsharedState,\r\n\t);\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\tfor (const enchantment of deadEntity.enchantments || []) {\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tswitch (enchantment.cardId) {\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e:\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e\r\n\t\t\t\t\t\t\t\t? CardIds.RecurringNightmare_BG26_055\r\n\t\t\t\t\t\t\t\t: CardIds.RecurringNightmare_BG26_055_G,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Replicating Menace\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_BG_BOT_312e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.LivingSpores_LivingSporesEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.LivingSpores_PlantToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EarthInvocation_ElementEarthEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ElementEarth_StoneElementalToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SneedsReplicator_ReplicateEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tspawns.getRandomMinionForTavernTier(\r\n\t\t\t\t\t\t\t\tMath.max(1, spawns.getTavernLevel(deadEntity.cardId) - 1),\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004e:\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge\r\n\t\t\t\t\t\t\t\t? CardIds.SurfNSurf_CrabToken_BG27_004_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"deathrattle-spawns.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-spawns.ts"],"names":[],"mappings":"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","sourcesContent":["import { AllCardsService, CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { CardsData } from '../cards/cards-data';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddCardsInHand,\r\n\taddStatsToBoard,\r\n\tbuildRandomUndeadCreation,\r\n\tbuildSingleBoardEntity,\r\n\tisCorrectTribe,\r\n\tstringifySimple\r\n} from '../utils';\r\nimport { computeDeathrattleMultiplier } from './deathrattle-effects';\r\nimport { SharedState } from './shared-state';\r\nimport { Spectator } from './spectator/spectator';\r\n\r\nexport const spawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tboardToSpawnInto: BoardEntity[],\r\n\tboardToSpawnIntoHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tcardsData: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n\tfriendly: boolean,\r\n\t// In most cases the business of knowing the number of minions to handle is left to the caller\r\n\tlimitSpawns: boolean,\r\n\tspawnReborn = false,\r\n\tuseKhadgar = true,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n\toriginalEntity: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (!cardId) {\r\n\t\tconsole.error(\r\n\t\t\t'Cannot spawn a minion without any cardId defined',\r\n\t\t\tstringifySimple(boardToSpawnInto, allCards),\r\n\t\t\tnew Error().stack,\r\n\t\t);\r\n\t}\r\n\tconst spawnMultiplier = useKhadgar\r\n\t\t? 2 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_BG_DAL_575).length || 1\r\n\t\t: 1;\r\n\tconst spawnMultiplierGolden = useKhadgar\r\n\t\t? 3 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_TB_BaconUps_034).length || 1\r\n\t\t: 1;\r\n\tconst minionsToSpawn = limitSpawns\r\n\t\t? Math.min(quantity * spawnMultiplier * spawnMultiplierGolden, 7 - boardToSpawnInto.length)\r\n\t\t: quantity * spawnMultiplier * spawnMultiplierGolden;\r\n\tconst result: BoardEntity[] = [];\r\n\tfor (let i = 0; i < minionsToSpawn; i++) {\r\n\t\tconst newMinion = buildSingleBoardEntity(\r\n\t\t\tcardId,\r\n\t\t\tboardToSpawnIntoHero,\r\n\t\t\tboardToSpawnInto,\r\n\t\t\tallCards,\r\n\t\t\tfriendly,\r\n\t\t\tsharedState.currentEntityId++,\r\n\t\t\tspawnReborn,\r\n\t\t\tcardsData,\r\n\t\t\tsharedState,\r\n\t\t\tboardEntityToSpawn,\r\n\t\t\toriginalEntity,\r\n\t\t);\r\n\t\tif (!newMinion.cardId) {\r\n\t\t\tconsole.warn('Invalid spawn', newMinion, cardId);\r\n\t\t}\r\n\t\tresult.push(newMinion);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const spawnEntitiesFromDeathrattle = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tentitiesDeadThisAttack: readonly BoardEntity[],\r\n\tallCards: AllCardsService,\r\n\tspawns: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n): readonly BoardEntity[] => {\r\n\t// Because if the baron dies because of a cleave, it still applies its effect to the other entities that died this turn\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\t[...boardWithDeadEntity, ...entitiesDeadThisAttack],\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tsharedState,\r\n\t);\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\t// const otherBoardSpawnedEntities: BoardEntity[] = [];\r\n\tfor (let i = 0; i < multiplier; i++) {\r\n\t\tconst cardIds = [deadEntity.cardId, ...(deadEntity.additionalCards ?? [])];\r\n\t\tfor (const deadEntityCardId of cardIds) {\r\n\t\t\tswitch (deadEntityCardId) {\r\n\t\t\t\tcase CardIds.Mecharoo_BOT_445:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_BOT_445t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Mecharoo_TB_BaconUps_002:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_TB_BaconUps_002t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Manasaber_BG26_800:\r\n\t\t\t\tcase CardIds.Manasaber_BG26_800_G:\r\n\t\t\t\t\tconst cublingId =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.Manasaber_BG26_800_G\r\n\t\t\t\t\t\t\t? CardIds.Manasaber_CublingToken_BG26_800_Gt\r\n\t\t\t\t\t\t\t: CardIds.Manasaber_CublingToken_BG26_800t;\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tcublingId,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309:\r\n\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.PiggybackImp_BG_AV_309_G\r\n\t\t\t\t\t\t\t\t? CardIds.PiggybackImp_BackpiggyImpToken_BG_AV_309t\r\n\t\t\t\t\t\t\t\t: CardIds.PiggybackImp_BackpiggyImpToken_AV_309t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HandlessForsaken_BG25_010:\r\n\t\t\t\tcase CardIds.HandlessForsaken_BG25_010_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.HandlessForsaken_BG25_010_G\r\n\t\t\t\t\t\t\t\t? CardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EternalSummoner_BG25_009:\r\n\t\t\t\tcase CardIds.EternalSummoner_BG25_009_G:\r\n\t\t\t\t\t// TODO\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.EternalSummoner_BG25_009_G\r\n\t\t\t\t\t\t\t\t? CardIds.EternalKnight_BG25_008_G\r\n\t\t\t\t\t\t\t\t: CardIds.EternalKnight_BG25_008,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Scallywag_BGS_061:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Scallywag_SkyPirateToken_BGS_061t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Scallywag_TB_BaconUps_141:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Scallywag_SkyPirateToken_TB_BaconUps_141t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.IckyImp_BG21_029:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.IckyImp_BG21_029_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HarvestGolemLegacy_BG_EX1_556:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.DamagedGolemLegacy,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.HarvestGolemLegacy_TB_BaconUps_006:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.HarvestGolem_DamagedGolemLegacyToken_TB_BaconUps_006t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SewerRat_BG19_010:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SewerRat_BG19_010_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010_Gt,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy:\r\n\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G:\r\n\t\t\t\t\tconst minionsToSpawnMawsworn =\r\n\t\t\t\t\t\tdeadEntityCardId === CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G ? 6 : 3;\r\n\t\t\t\t\tfor (let i = 0; i < minionsToSpawnMawsworn; i++) {\r\n\t\t\t\t\t\tconst minionCardId = spawns.getRandomMinionForTavernTier(1);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tminionCardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy:\r\n\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy_G:\r\n\t\t\t\t\tconst minionsToSpawnFestergut =\r\n\t\t\t\t\t\tdeadEntityCardId === CardIds.Festergut_BG25_HERO_100_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < minionsToSpawnFestergut; i++) {\r\n\t\t\t\t\t\tconst randomUndeadCreation = buildRandomUndeadCreation(\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\trandomUndeadCreation.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\trandomUndeadCreation,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KindlyGrandmother_KAR_005:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KindlyGrandmother_TB_BaconUps_004:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RatPack_BG_CFM_316:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RatPack_RatToken_BG_CFM_316t,\r\n\t\t\t\t\t\t\tdeadEntity.attack,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RatPack_TB_BaconUps_027:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RatPack_RatToken_TB_BaconUps_027t,\r\n\t\t\t\t\t\t\tdeadEntity.attack,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Imprisoner_BGS_014:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Imprisoner_TB_BaconUps_113:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.InfestedWolf_OG_216:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.InfestedWolf_Spider,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.InfestedWolf_TB_BaconUps_026:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.InfestedWolf_SpiderToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.TheBeastLegacy:\r\n\t\t\t\t// case CardIds.TheBeastBattlegrounds:\r\n\t\t\t\t// \totherBoardSpawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.FinkleEinhornLegacy,\r\n\t\t\t\t// \t\t\t1,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\t!deadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_BG_BOT_312:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_TB_BaconUps_032:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanoEgg_BOT_537:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_BOT_537t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanoEgg_TB_BaconUps_039:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_TB_BaconUps_039t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SavannahHighmaneLegacy_BG_EX1_534:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_BG_EX1_534t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SavannahHighmaneLegacy_TB_BaconUps_049:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_TB_BaconUps_049t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RingMatron_BG_DMF_533:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_BG_DMF_533t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.RingMatron_TB_BaconUps_309:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_TB_BaconUps_309t,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SatedThreshadon_UNG_010:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.PrimalfinTotem_PrimalfinToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SatedThreshadon_TB_BaconUps_052:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.SatedThreshadon_PrimalfinToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Ghastcoiler_BGS_008:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[Math.floor(Math.random() * spawns.ghastcoilerSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[Math.floor(Math.random() * spawns.ghastcoilerSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.GentleDjinni_BGS_121:\r\n\t\t\t\tcase CardIds.GentleDjinni_TB_BaconUps_165:\r\n\t\t\t\t\tconst djinniSpawns = [];\r\n\t\t\t\t\tconst djinniToSpawnQuandtity = deadEntity.cardId === CardIds.GentleDjinni_TB_BaconUps_165 ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < djinniToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\tdjinniSpawns.push(pickRandom(spawns.gentleDjinniSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (const djinniSpawn of djinniSpawns) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdjinniSpawn,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, djinniSpawns);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy:\r\n\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G:\r\n\t\t\t\t\tconst kilrekCardsToAddQuantity =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tconst kilrekCardsToAdd = [];\r\n\t\t\t\t\tfor (let i = 0; i < kilrekCardsToAddQuantity; i++) {\r\n\t\t\t\t\t\tkilrekCardsToAdd.push(pickRandom(spawns.demonSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, kilrekCardsToAdd);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy:\r\n\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G:\r\n\t\t\t\t\tconst brannSpawns = [];\r\n\t\t\t\t\tconst brannToSpawnQuandtity =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < brannToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\tbrannSpawns.push(pickRandom(spawns.brannEpicEggSpawns));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (const brannSpawn of brannSpawns) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tbrannSpawn,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, allCards, spectator, brannSpawns);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase CardIds.Ghastcoiler_TRLA_149:\r\n\t\t\t\tcase CardIds.Ghastcoiler_TB_BaconUps_057:\r\n\t\t\t\t\tconst ghastcoilerLoop = deadEntity.cardId === CardIds.Ghastcoiler_TB_BaconUps_057 ? 4 : 2;\r\n\t\t\t\t\tfor (let i = 0; i < ghastcoilerLoop; i++) {\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tspawns.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * spawns.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Voidlord_BG_LOOT_368:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.VoidwalkerLegacy_BG_CS2_065,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Voidlord_TB_BaconUps_059:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.Voidlord_VoidwalkerLegacyToken,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321:\r\n\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321_G:\r\n\t\t\t\t\tconst annoyOTroupeSpawns =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.AnnoyOTroupe_BG26_ETC_321_G\r\n\t\t\t\t\t\t\t? CardIds.AnnoyOTron_BG_GVG_085_G\r\n\t\t\t\t\t\t\t: CardIds.AnnoyOTron_BG_GVG_085;\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tannoyOTroupeSpawns,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.OmegaBuster_BG21_025:\r\n\t\t\t\tcase CardIds.OmegaBuster_BG21_025_G:\r\n\t\t\t\t\t// Here we have to truncate the spawned entities instead of letting the caller handle it,\r\n\t\t\t\t\t// because we need to know how many minions couldn't spawn so that we can apply the buff.\r\n\t\t\t\t\t// HOWEVER, this can cause an issue, if for instance a Scallywag token spawns, attacks right away,\r\n\t\t\t\t\t// and then Omega Buster spawns. In this case, it will not have yet processed the token's attack,\r\n\t\t\t\t\t// and will limit the spawns\r\n\t\t\t\t\tconst cardParam = 6;\r\n\t\t\t\t\tconst entitiesToSpawn = Math.max(\r\n\t\t\t\t\t\t0,\r\n\t\t\t\t\t\tMath.min(cardParam, 7 - boardWithDeadEntity.length - spawnedEntities.length),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst buffAmount =\r\n\t\t\t\t\t\t(deadEntityCardId === CardIds.OmegaBuster_BG21_025_G ? 2 : 1) * (cardParam - entitiesToSpawn);\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.OmegaBuster_BG21_025_G\r\n\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t\r\n\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\tentitiesToSpawn,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t);\r\n\t\t\t\t\t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\tspawnedEntities,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.OmegaBusterBattlegrounds:\r\n\t\t\t\t// \tconst entitiesToSpawn2 = Math.min(6, 7 - boardWithDeadEntity.length);\r\n\t\t\t\t// \tconst buffAmount2 = 6 - entitiesToSpawn2;\r\n\t\t\t\t// \tspawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.ReplicatingMenace_MicrobotTokenBattlegrounds,\r\n\t\t\t\t// \t\t\tentitiesToSpawn2,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\tdeadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \taddStatsToBoard(deadEntity, boardWithDeadEntity, 2 * buffAmount2, 2 * buffAmount2, allCards, spectator, Race[Race.MECH]);\r\n\t\t\t\t// \t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t// \taddStatsToBoard(deadEntity, spawnedEntities, 2 * buffAmount2, 2 * buffAmount2, allCards, spectator, Race[Race.MECH]);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tcase CardIds.KangorsApprentice_BGS_012:\r\n\t\t\t\t\tconst cardIdsToSpawn = sharedState.deaths\r\n\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t// eslint-disable-next-line prettier/prettier\r\n\t\t\t\t\t\t.filter((entity) => isCorrectTribe(allCards.getCard(entity.cardId)?.races, Race.MECH))\r\n\t\t\t\t\t\t.slice(0, 2)\r\n\t\t\t\t\t\t.map((entity) => entity.cardId);\r\n\t\t\t\t\tcardIdsToSpawn.forEach((cardId) =>\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tcardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.KangorsApprentice_TB_BaconUps_087:\r\n\t\t\t\t\tconst cardIdsToSpawn2 = sharedState.deaths\r\n\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t.filter((entity) => isCorrectTribe(allCards.getCard(entity.cardId)?.races, Race.MECH))\r\n\t\t\t\t\t\t.slice(0, 4)\r\n\t\t\t\t\t\t.map((entity) => entity.cardId);\r\n\t\t\t\t\tcardIdsToSpawn2.forEach((cardId) =>\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tcardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tspawns.pirateSpawns[Math.floor(Math.random() * spawns.pirateSpawns.length)],\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t],\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SlyRaptor_BG25_806:\r\n\t\t\t\tcase CardIds.SlyRaptor_BG25_806_G:\r\n\t\t\t\t\tconst raptorStat = deadEntity.cardId === CardIds.SlyRaptor_BG25_806_G ? 14 : 7;\r\n\t\t\t\t\tconst beastPool = spawns.beastSpawns.filter((id) => id !== CardIds.SlyRaptor_BG25_806);\r\n\t\t\t\t\tconst beastsFromRaptor = spawnEntities(\r\n\t\t\t\t\t\tbeastPool[Math.floor(Math.random() * beastPool.length)],\r\n\t\t\t\t\t\t1,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbeastsFromRaptor.forEach((b) => {\r\n\t\t\t\t\t\tb.attack = raptorStat;\r\n\t\t\t\t\t\tb.health = raptorStat;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tspawnedEntities.push(...beastsFromRaptor);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\r\n\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\r\n\t\t\t\t\tconst stats = deadEntity.scriptDataNum1;\r\n\t\t\t\t\tconst octosariSpawn =\r\n\t\t\t\t\t\tdeadEntity.cardId === CardIds.OctosariWrapGod_BG26_804_G\r\n\t\t\t\t\t\t\t? CardIds.TentacleOfOctosariToken_BG26_803_Gt\r\n\t\t\t\t\t\t\t: CardIds.TentacleOfOctosariToken_BG26_803t;\r\n\t\t\t\t\tconst octoSpawns = spawnEntities(\r\n\t\t\t\t\t\toctosariSpawn,\r\n\t\t\t\t\t\t1,\r\n\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t);\r\n\t\t\t\t\toctoSpawns.forEach((b) => {\r\n\t\t\t\t\t\tb.attack += stats;\r\n\t\t\t\t\t\tb.health += stats;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tspawnedEntities.push(...octoSpawns);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.Bassgill_BG26_350:\r\n\t\t\t\tcase CardIds.Bassgill_BG26_350_G:\r\n\t\t\t\t\tconst bassgillIterations = deadEntity.cardId === CardIds.Bassgill_BG26_350_G ? 2 : 1;\r\n\t\t\t\t\tfor (let i = 0; i < bassgillIterations; i++) {\r\n\t\t\t\t\t\tconst hand = boardWithDeadEntityHero.hand?.filter((e) => !e.summonedFromHand) ?? [];\r\n\t\t\t\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\t\t\t\tconst highestHealthMinions = highestHealth\r\n\t\t\t\t\t\t\t? hand.filter((c) => c.health === highestHealth)\r\n\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\tif (spawn) {\r\n\t\t\t\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t\t\t\tspawn.summonedFromHand = true;\r\n\t\t\t\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\t\t\t\tconst bassgillSpawns = spawnEntities(\r\n\t\t\t\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawnedEntities.push(...bassgillSpawns);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_BG27_008:\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_BG27_008_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.MechanizedGiftHorse_BG27_008_G\r\n\t\t\t\t\t\t\t\t? CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_MechorseToken_BG27_008t:\r\n\t\t\t\tcase CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt\r\n\t\t\t\t\t\t\t\t? CardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.PapaBear_BG27_509:\r\n\t\t\t\tcase CardIds.PapaBear_BG27_509_G:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.PapaBear_BG27_509_G\r\n\t\t\t\t\t\t\t\t? CardIds.MamaBear_TB_BaconUps_090\r\n\t\t\t\t\t\t\t\t: CardIds.MamaBear_BGS_021,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t// Putricide-only\r\n\t\t\t\tcase CardIds.FoulEgg_BG26_RLK_833:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.FoulEgg_FoulFowlToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// case CardIds.SplittingFesteroot_BG26_GIL_616:\r\n\t\t\t\t// \tspawnedEntities.push(\r\n\t\t\t\t// \t\t...spawnEntities(\r\n\t\t\t\t// \t\t\tCardIds.SplittingFesteroot_SplittingSaplingToken,\r\n\t\t\t\t// \t\t\t2,\r\n\t\t\t\t// \t\t\tboardWithDeadEntity,\r\n\t\t\t\t// \t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t// \t\t\totherBoard,\r\n\t\t\t\t// \t\t\totherBoardHero,\r\n\t\t\t\t// \t\t\tallCards,\r\n\t\t\t\t// \t\t\tspawns,\r\n\t\t\t\t// \t\t\tsharedState,\r\n\t\t\t\t// \t\t\tspectator,\r\n\t\t\t\t// \t\t\tdeadEntity.friendly,\r\n\t\t\t\t// \t\t\tfalse,\r\n\t\t\t\t// \t\t),\r\n\t\t\t\t// \t);\r\n\t\t\t\t// \tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n\r\nexport const spawnEntitiesFromEnchantments = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tallCards: AllCardsService,\r\n\tspawns: CardsData,\r\n\tsharedState: SharedState,\r\n\tspectator: Spectator,\r\n): readonly BoardEntity[] => {\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tsharedState,\r\n\t);\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\tfor (const enchantment of deadEntity.enchantments || []) {\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tswitch (enchantment.cardId) {\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e:\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e\r\n\t\t\t\t\t\t\t\t? CardIds.RecurringNightmare_BG26_055\r\n\t\t\t\t\t\t\t\t: CardIds.RecurringNightmare_BG26_055_G,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Replicating Menace\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_BG_BOT_312e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.LivingSpores_LivingSporesEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.LivingSpores_PlantToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EarthInvocation_ElementEarthEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ElementEarth_StoneElementalToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SneedsReplicator_ReplicateEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tspawns.getRandomMinionForTavernTier(\r\n\t\t\t\t\t\t\t\tMath.max(1, spawns.getTavernLevel(deadEntity.cardId) - 1),\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004e:\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge\r\n\t\t\t\t\t\t\t\t? CardIds.SurfNSurf_CrabToken_BG27_004_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tallCards,\r\n\t\t\t\t\t\t\tspawns,\r\n\t\t\t\t\t\t\tsharedState,\r\n\t\t\t\t\t\t\tspectator,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n"]}
|