@firestone-hs/simulate-bgs-battle 1.1.713 → 1.1.714

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.
Files changed (59) hide show
  1. package/dist/bgs-player-entity.d.ts +1 -0
  2. package/dist/bgs-player-entity.js.map +1 -1
  3. package/dist/cards/impl/_card-mappings.js +2 -2
  4. package/dist/cards/impl/_card-mappings.js.map +1 -1
  5. package/dist/cards/impl/bg-spell/butchering.js +3 -1
  6. package/dist/cards/impl/bg-spell/butchering.js.map +1 -1
  7. package/dist/cards/impl/bg-spell/healthy-bounty.js +1 -1
  8. package/dist/cards/impl/bg-spell/healthy-bounty.js.map +1 -1
  9. package/dist/cards/impl/bg-spell/hostile-bounty.js +1 -1
  10. package/dist/cards/impl/bg-spell/hostile-bounty.js.map +1 -1
  11. package/dist/cards/impl/bg-spell/queens-command.js +1 -1
  12. package/dist/cards/impl/bg-spell/queens-command.js.map +1 -1
  13. package/dist/cards/impl/minion/brazen-buccaneer.js +3 -1
  14. package/dist/cards/impl/minion/brazen-buccaneer.js.map +1 -1
  15. package/dist/cards/impl/minion/charging-czarina.js +3 -2
  16. package/dist/cards/impl/minion/charging-czarina.js.map +1 -1
  17. package/dist/cards/impl/minion/dastardly-drust.js +2 -2
  18. package/dist/cards/impl/minion/dastardly-drust.js.map +1 -1
  19. package/dist/cards/impl/minion/dreaming-thornweaver.js +2 -7
  20. package/dist/cards/impl/minion/dreaming-thornweaver.js.map +1 -1
  21. package/dist/cards/impl/minion/drustfallen-butcher.js +1 -1
  22. package/dist/cards/impl/minion/drustfallen-butcher.js.map +1 -1
  23. package/dist/cards/impl/minion/king-bagurgle.js +2 -2
  24. package/dist/cards/impl/minion/king-bagurgle.js.map +1 -1
  25. package/dist/cards/impl/minion/nalaa-the-redeemer.js +1 -1
  26. package/dist/cards/impl/minion/nalaa-the-redeemer.js.map +1 -1
  27. package/dist/cards/impl/minion/poultron.js +1 -1
  28. package/dist/cards/impl/minion/poultron.js.map +1 -1
  29. package/dist/cards/impl/minion/stomping-stegodon.d.ts +1 -1
  30. package/dist/cards/impl/minion/stomping-stegodon.js +1 -1
  31. package/dist/cards/impl/minion/stomping-stegodon.js.map +1 -1
  32. package/dist/cards/impl/trinket/blood-golem-sticker.js +1 -1
  33. package/dist/cards/impl/trinket/blood-golem-sticker.js.map +1 -1
  34. package/dist/cards/impl/trinket/bluegill-flippers.js +15 -5
  35. package/dist/cards/impl/trinket/bluegill-flippers.js.map +1 -1
  36. package/dist/cards/impl/trinket/copper-coil.js +9 -6
  37. package/dist/cards/impl/trinket/copper-coil.js.map +1 -1
  38. package/dist/cards/impl/trinket/lorewalker-scroll.js +2 -2
  39. package/dist/cards/impl/trinket/lorewalker-scroll.js.map +1 -1
  40. package/dist/cards/impl/trinket/lucky-tabby.js +2 -2
  41. package/dist/cards/impl/trinket/lucky-tabby.js.map +1 -1
  42. package/dist/cards/impl/trinket/powder-keg.js +1 -1
  43. package/dist/cards/impl/trinket/powder-keg.js.map +1 -1
  44. package/dist/cards/impl/trinket/{tiger-carving-token.js → tiger-carving.js} +2 -2
  45. package/dist/cards/impl/trinket/tiger-carving.js.map +1 -0
  46. package/dist/simulation/add-minion-to-board.js +11 -0
  47. package/dist/simulation/add-minion-to-board.js.map +1 -1
  48. package/dist/simulation/auras.js +22 -21
  49. package/dist/simulation/auras.js.map +1 -1
  50. package/dist/simulation/blood-gems.js +2 -1
  51. package/dist/simulation/blood-gems.js.map +1 -1
  52. package/dist/simulation/deathrattle-orchestration.js +3 -0
  53. package/dist/simulation/deathrattle-orchestration.js.map +1 -1
  54. package/dist/simulation/global-info-helpers.d.ts +1 -0
  55. package/dist/simulation/global-info-helpers.js +7 -1
  56. package/dist/simulation/global-info-helpers.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/cards/impl/trinket/tiger-carving-token.js.map +0 -1
  59. /package/dist/cards/impl/trinket/{tiger-carving-token.d.ts → tiger-carving.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"add-minion-to-board.js","sourceRoot":"","sources":["../../src/simulation/add-minion-to-board.ts"],"names":[],"mappings":"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","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\nimport { BgsPlayerEntity } from '../bgs-player-entity';\nimport { BoardEntity } from '../board-entity';\nimport {\n\thasAfterOtherSpawned,\n\thasOnDespawned,\n\thasOnFriendlyMinionSummonedTrinket,\n\thasOnOtherSpawned,\n\thasOnOtherAuraSpawned as hasOnOtherSpawnedAura,\n\thasOnSpawned,\n} from '../cards/card.interface';\nimport { isWhelp } from '../cards/cards-data';\nimport { cardMappings } from '../cards/impl/_card-mappings';\nimport { eternalKnightAttack, eternalKnightHealth } from '../cards/impl/trinket/eternal-portrait';\nimport { updateDivineShield } from '../keywords/divine-shield';\nimport { updateTaunt } from '../keywords/taunt';\nimport { CardIds } from '../services/card-ids';\nimport { pickRandom } from '../services/utils';\nimport { alreadyHasVolumizerBuff, copyEntity, hasCorrectTribe, isVolumizer } from '../utils';\nimport { FullGameState } from './internal-game-state';\nimport { onQuestProgressUpdated } from './quest';\nimport { modifyStats } from './stats';\n\n// export const addMinionsToBoard = (\n// \tboard: BoardEntity[],\n// \tboardHero: BgsPlayerEntity,\n// \totherBoard: BoardEntity[],\n// \totherHero: BgsPlayerEntity,\n// \tindex: number,\n// \tminionsToAdd: readonly BoardEntity[],\n// \tgameState: FullGameState,\n// ): void => {\n// \t// board.splice(index, 0, ...minionsToAdd);\n// \tfor (const minionToAdd of [...minionsToAdd].reverse()) {\n// \t\taddMinionToBoard(board, boardHero, otherBoard, otherHero, index, minionToAdd, gameState, false);\n// \t}\n// \thandleAfterSpawnEffects(board, boardHero, otherBoard, otherHero, minionsToAdd, gameState);\n// };\n\nexport const addMinionToBoard = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tindex: number,\n\tminionToAdd: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n): void => {\n\tboard.splice(index, 0, minionToAdd);\n\t// Minion has already been removed from the board in the previous step\n\t// Update the global \"SummonedThisGame/Combat\" info here\n\thandleAddedMinionAuraEffect(board, boardHero, otherBoard, otherHero, minionToAdd, gameState, applySelfAuras);\n\t// Important to do this here, so that \"attack immediately\" minions can be taken into account by the quests\n\tonMinionSummoned(boardHero, board, gameState);\n\thandleSpawnEffect(board, boardHero, otherBoard, otherHero, minionToAdd, gameState, applySelfAuras);\n};\n\nconst handleSpawnEffect = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n): void => {\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\n\n\t// https://twitter.com/LoewenMitchell/status/1491879869457879040\n\tif (cardIds.some((cardId) => isWhelp(cardId, gameState.allCards))) {\n\t\tconst manyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps_BG22_HERO_305_Buddy);\n\t\tconst goldenManyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps_BG22_HERO_305_Buddy_G);\n\t\tmanyWhelps.forEach((entity) => {\n\t\t\tmodifyStats(entity, entity, 2, 2, board, boardHero, gameState);\n\t\t});\n\t\tgoldenManyWhelps.forEach((entity) => {\n\t\t\tmodifyStats(entity, entity, 4, 4, board, boardHero, gameState);\n\t\t});\n\t}\n\n\tfor (const entity of board) {\n\t\t// The case for Reborns, and these shouldn't proc on themselves\n\t\tif (entity.entityId === spawned.entityId) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst onOtherSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasOnOtherSpawned(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawned(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\totherHero: otherHero,\n\t\t\t\tapplySelfAuras,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t\tgameState,\n\t\t\t});\n\t\t}\n\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.CobaltGuardian:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.MECH, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tif (!entity.divineShield) {\n\t\t\t\t\t\tupdateDivineShield(entity, board, boardHero, otherHero, true, gameState);\n\t\t\t\t\t}\n\t\t\t\t\tmodifyStats(entity, entity, 2, 0, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Bigfernal_BGS_204:\n\t\t\t// case CardIds.Bigfernal_TB_BaconUps_304:\n\t\t\t// \tif (hasCorrectTribe(spawned, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards)) {\n\t\t\t// \t\tconst statsBonus = entity.cardId === CardIds.Bigfernal_TB_BaconUps_304 ? 2 : 1;\n\t\t\t// \t\tmodifyStats(entity, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t// \t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.MamaBear_BGS_021:\n\t\t\tcase CardIds.MamaBear_TB_BaconUps_090:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.MamaBear_TB_BaconUps_090 ? 12 : 6;\n\t\t\t\t\tmodifyStats(spawned, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.PapaBear_BG27_509:\n\t\t\t// case CardIds.PapaBear_BG27_509_G:\n\t\t\t// \tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t// \t\tconst statsBonus = entity.cardId === CardIds.PapaBear_BG27_509_G ? 16 : 8;\n\t\t\t// \t\tmodifyStats(spawned, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t// \t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.PackLeader_BGS_017:\n\t\t\tcase CardIds.PackLeader_TB_BaconUps_086:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.PackLeader_TB_BaconUps_086 ? 4 : 2;\n\t\t\t\t\tmodifyStats(spawned, entity, statsBonus, 0, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfor (const trinket of boardHero.trinkets ?? []) {\n\t\tconst onOtherSpawnedImpl = cardMappings[trinket.cardId];\n\t\tif (hasOnOtherSpawned(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawned(trinket, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\totherHero: otherHero,\n\t\t\t\tapplySelfAuras,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t\tgameState,\n\t\t\t});\n\t\t}\n\t}\n};\nexport const handleAddedMinionAuraEffect = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n\tisActuallySpawned = true,\n): void => {\n\tfor (const heroPower of boardHero.heroPowers) {\n\t\tswitch (heroPower.cardId) {\n\t\t\tcase CardIds.SproutItOut:\n\t\t\t\tif (isActuallySpawned) {\n\t\t\t\t\tupdateTaunt(spawned, true, board, boardHero, otherHero, gameState);\n\t\t\t\t\tmodifyStats(spawned, boardHero, 1, 2, board, boardHero, gameState);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (boardHero.questRewards?.includes(CardIds.TumblingDisaster_BG28_Reward_505)) {\n\t\tconst tumblingDisasterBonus =\n\t\t\tboardHero.questRewardEntities?.find((e) => e.cardId === CardIds.TumblingDisaster_BG28_Reward_505)\n\t\t\t\t?.scriptDataNum1 || 1;\n\t\tmodifyStats(spawned, boardHero, tumblingDisasterBonus, tumblingDisasterBonus, board, boardHero, gameState);\n\t}\n\n\tif (isActuallySpawned) {\n\t\tfor (const trinket of boardHero.trinkets ?? []) {\n\t\t\tconst summonedImpl = cardMappings[trinket.cardId];\n\t\t\tif (hasOnFriendlyMinionSummonedTrinket(summonedImpl)) {\n\t\t\t\tsummonedImpl.onFriendlyMinionSummoned(trinket, {\n\t\t\t\t\tspawned,\n\t\t\t\t\tboard,\n\t\t\t\t\thero: boardHero,\n\t\t\t\t\totherBoard,\n\t\t\t\t\totherHero,\n\t\t\t\t\tgameState,\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.BlingtronsSunglasses_BG30_MagicItem_978:\n\t\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.MECH, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\t\tconst target = pickRandom(board.filter((e) => !e.divineShield));\n\t\t\t\t\t\tif (!!target) {\n\t\t\t\t\t\t\tupdateDivineShield(target, board, boardHero, otherHero, true, gameState);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TwinSkyLanterns_BG30_MagicItem_822:\n\t\t\t\tcase CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2:\n\t\t\t\t\tif (!trinket.rememberedMinion) {\n\t\t\t\t\t\ttrinket.rememberedMinion = copyEntity(spawned);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply auras to board\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\n\tfor (const spawnedCardId of cardIds) {\n\t\thandleMinionAddedAuraEffect(spawnedCardId, spawned, board, boardHero, gameState, isActuallySpawned);\n\t}\n\n\t// When we want to summon an \"exact copy\", we need to make sure we don't apply the aura twice\n\tif (applySelfAuras) {\n\t\t// The board here already contains the new minion\n\t\t// TODO: what if the additional part is a potential target for the aura effect?\n\t\t// 2024-08-27: changing the order to first handleMinionAddedAuraEffect so that the automatons get boosted,\n\t\t// then apply the aura\n\t\tapplyAurasToSelf(spawned, board, boardHero, gameState);\n\t}\n\n\tif (isActuallySpawned) {\n\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\tboardHero.globalInfo.BeastsSummonedThisCombat++;\n\t\t\tboardHero.globalInfo.BeastsSummonedThisGame++;\n\t\t}\n\t\tif (hasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards)) {\n\t\t\tboardHero.globalInfo.PiratesSummonedThisGame++;\n\t\t}\n\t}\n};\n\nexport const applyAurasToSelf = (\n\tspawned: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tapplyAttackAuras = true,\n\tapplyHealthAuras = true,\n): void => {\n\tif (applyAttackAuras) {\n\t\tspawned.attack += boardHero.globalInfo.AdditionalAttack;\n\t}\n\n\tif (!!boardHero.questRewards?.length) {\n\t\tfor (const quest of boardHero.questRewards) {\n\t\t\tswitch (quest) {\n\t\t\t\tcase CardIds.VolatileVenom:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 7;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 7;\n\t\t\t\t\t}\n\t\t\t\t\tspawned.enchantments.push({\n\t\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\n\t\t\t\t\t\toriginEntityId: undefined,\n\t\t\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TheSmokingGun:\n\t\t\t\t\tspawned.attack += 4;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!!boardHero.trinkets?.length) {\n\t\tfor (const trinket of boardHero.trinkets) {\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.FeralTalisman_BG30_MagicItem_880:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 2;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 1;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FeralTalisman_FeralTalismanToken_BG30_MagicItem_880t:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 8;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 5;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.DazzlingDagger_BG32_MagicItem_934:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += trinket.scriptDataNum1 || 1;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.HordeKeychainToken_BG30_MagicItem_843t:\n\t\t\t\t\tif (gameState.cardsData.getTavernLevel(spawned.cardId) <= 3) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tspawned.attack += 7;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\t\tspawned.health += 5;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FlagbearerPortrait_BG30_MagicItem_921:\n\t\t\t\t\tif (\n\t\t\t\t\t\tspawned.cardId === CardIds.Scallywag_SkyPirateToken_BGS_061t ||\n\t\t\t\t\t\tspawned.cardId === CardIds.Scallywag_SkyPirateToken_TB_BaconUps_141t\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tspawned.attack += 6;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (boardHero.globalInfo.HauntedCarapaceAttackBonus > 0) {\n\t\tif (applyAttackAuras) {\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\tboardHero.globalInfo.HauntedCarapaceAttackBonus,\n\t\t\t\t0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t}\n\tif (boardHero.globalInfo.HauntedCarapaceHealthBonus > 0) {\n\t\tif (applyHealthAuras) {\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\t0,\n\t\t\t\tboardHero.globalInfo.HauntedCarapaceHealthBonus,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tmodifyStats(\n\t\t\t\t\tspawned,\n\t\t\t\t\tspawned,\n\t\t\t\t\tboardHero.globalInfo.UndeadAttackBonus,\n\t\t\t\t\t0,\n\t\t\t\t\tboard,\n\t\t\t\t\tboardHero,\n\t\t\t\t\tgameState,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.PirateAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tmodifyStats(\n\t\t\t\t\tspawned,\n\t\t\t\t\tspawned,\n\t\t\t\t\tboardHero.globalInfo.PirateAttackBonus,\n\t\t\t\t\t0,\n\t\t\t\t\tboard,\n\t\t\t\t\tboardHero,\n\t\t\t\t\tgameState,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.GoldrinnBuffAtk > 0) {\n\t\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.GoldrinnBuffAtk : 0;\n\t\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.GoldrinnBuffHealth : 0;\n\t\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t\t}\n\t}\n\tif (isWhelp(spawned.cardId, gameState.allCards)) {\n\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.WhelpAttackBuff ?? 0 : 0;\n\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.WhelpHealthBuff ?? 0 : 0;\n\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t}\n\tif (\n\t\tisVolumizer(spawned.cardId, boardHero, gameState.anomalies, gameState.allCards) &&\n\t\t// https://replays.firestoneapp.com/?reviewId=75e82ef1-3442-4307-a3c8-4a3b72fcf6af&turn=11&action=2\n\t\t!alreadyHasVolumizerBuff(spawned, boardHero, gameState)\n\t) {\n\t\tif (boardHero.globalInfo.VolumizerAttackBuff > 0 || boardHero.globalInfo.VolumizerHealthBuff > 0) {\n\t\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.VolumizerAttackBuff ?? 0 : 0;\n\t\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.VolumizerHealthBuff ?? 0 : 0;\n\t\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t\t}\n\t}\n\n\t// In case Putricide spawns a stictched minion whose stitched part creates an aura effect\n\t// const potentialAuraSources: { cardId: string; entityId: number }[] = [\n\t// \t{ cardId: spawned.cardId, entityId: spawned.entityId },\n\t// \t...(spawned.additionalCards ?? []).map((cardId) => ({ cardId, entityId: spawned.entityId })),\n\t// ];\n\n\tif (gameState.cardsData.getTavernLevel(spawned.cardId) % 2 === 1) {\n\t\tconst atkBuff = applyAttackAuras ? boardHero.globalInfo.MutatedLasherAttackBuff ?? 0 : 0;\n\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.MutatedLasherHealthBuff ?? 0 : 0;\n\t\tmodifyStats(spawned, spawned, atkBuff, healthBuff, board, boardHero, gameState, false);\n\t}\n\tfor (const entity of board) {\n\t\tconst onOtherSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasOnOtherSpawnedAura(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawnedAura(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\tgameState,\n\t\t\t\tapplyAttackAuras,\n\t\t\t\tapplyHealthAuras,\n\t\t\t});\n\t\t}\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += entity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t\t// \tif (\n\t\t\t// \t\thasCorrectTribe(spawned, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards) &&\n\t\t\t// \t\tentity.entityId !== spawned.entityId\n\t\t\t// \t) {\n\t\t\t// \t\tspawned.attack += entity.cardId === CardIds.Kathranatir_BG21_039_G ? 2 : 1;\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\t\tif (spawned.divineShield) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SoreLoser_BG27_030:\n\t\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack +=\n\t\t\t\t\t\t\t(entity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst onSpawnedImpl = cardMappings[spawned.cardId];\n\tif (hasOnSpawned(onSpawnedImpl)) {\n\t\tonSpawnedImpl.onSpawned(spawned, {\n\t\t\thero: boardHero,\n\t\t\tboard: board,\n\t\t\tgameState: gameState,\n\t\t\tapplyAttackAuras,\n\t\t\tapplyHealthAuras,\n\t\t});\n\t}\n\tswitch (spawned.cardId) {\n\t\tcase CardIds.EternalKnight_BG25_008:\n\t\tcase CardIds.EternalKnight_BG25_008_G:\n\t\t\tconst multiplierKnight = spawned.cardId === CardIds.EternalKnight_BG25_008_G ? 2 : 1;\n\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? eternalKnightAttack * statsBonusKnight : 0,\n\t\t\t\tapplyHealthAuras ? eternalKnightHealth * statsBonusKnight : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.EnsorcelledFungus_BG28_555:\n\t\tcase CardIds.EnsorcelledFungus_BG28_555_G:\n\t\t\tconst multiplierFungus = spawned.cardId === CardIds.EnsorcelledFungus_BG28_555_G ? 2 : 1;\n\t\t\tconst statsBonusFungus = multiplierFungus * boardHero.globalInfo.TavernSpellsCastThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? statsBonusFungus : 0,\n\t\t\t\tapplyHealthAuras ? 2 * statsBonusFungus : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.FlourishingFrostling_BG26_537:\n\t\tcase CardIds.FlourishingFrostling_BG26_537_G:\n\t\t\tconst multiplierFrostling = spawned.cardId === CardIds.FlourishingFrostling_BG26_537_G ? 2 : 1;\n\t\t\tconst statsBonusFrostling = multiplierFrostling * boardHero.globalInfo.FrostlingBonus;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 2 * statsBonusFrostling : 0,\n\t\t\t\tapplyHealthAuras ? statsBonusFrostling : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.SaltyLooter_BGS_081:\n\t\tcase CardIds.SaltyLooter_TB_BaconUps_143:\n\t\t\tconst multiplierLooter = spawned.cardId === CardIds.SaltyLooter_TB_BaconUps_143 ? 2 : 1;\n\t\t\tconst statsBonusLooter = multiplierLooter * boardHero.globalInfo.PiratesSummonedThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 2 * statsBonusLooter : 0,\n\t\t\t\tapplyHealthAuras ? 2 * multiplierLooter : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\tconst multiplierAstral = spawned.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t// Don't count the yourself\n\t\t\tconst statsBonusAstral = multiplierAstral * (boardHero.globalInfo.AstralAutomatonsSummonedThisGame - 1);\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 3 * statsBonusAstral : 0,\n\t\t\t\tapplyHealthAuras ? 2 * statsBonusAstral : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.RotHideGnoll_BG25_013:\n\t\tcase CardIds.RotHideGnoll_BG25_013_G:\n\t\t\tconst multiplierGnoll = spawned.cardId === CardIds.RotHideGnoll_BG25_013_G ? 2 : 1;\n\t\t\tconst statsBonusGnoll =\n\t\t\t\tmultiplierGnoll * gameState.sharedState.deaths.filter((e) => e.friendly === spawned.friendly).length;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? statsBonusGnoll : 0,\n\t\t\t\tapplyHealthAuras ? 0 : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\n// Introduced for Rapid Reanimation: since we will \"addMinionToBoard\" the minion afterwards, the auras will\n// be re-applied then, so we need to remove them first\nexport const removeAurasFromSelf = (\n\tentity: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tapplyAttackAuras = true,\n\tapplyHealthAuras = true,\n): void => {\n\tif (applyAttackAuras) {\n\t\tentity.attack -= Math.max(0, boardHero.globalInfo.AdditionalAttack);\n\t\tentity.maxAttack -= Math.max(0, boardHero.globalInfo.AdditionalAttack);\n\t}\n\n\tconst onDespawnedImpl = cardMappings[entity.cardId];\n\tif (hasOnDespawned(onDespawnedImpl)) {\n\t\tonDespawnedImpl.onDespawned(entity, {\n\t\t\thero: boardHero,\n\t\t\tboard: board,\n\t\t\tgameState,\n\t\t\tapplyAttackAuras,\n\t\t\tapplyHealthAuras,\n\t\t});\n\t}\n\n\tif (!!boardHero.questRewards?.length) {\n\t\tfor (const quest of boardHero.questRewards) {\n\t\t\tswitch (quest) {\n\t\t\t\tcase CardIds.VolatileVenom:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 7);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.health - 7);\n\t\t\t\t\t}\n\t\t\t\t\tentity.enchantments = entity.enchantments.filter(\n\t\t\t\t\t\t(e) => e.cardId !== CardIds.VolatileVenom_VolatileEnchantment,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TheSmokingGun:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FlagbearerPortrait_BG30_MagicItem_921:\n\t\t\t\t\tif (\n\t\t\t\t\t\tentity.cardId === CardIds.SkyPirateFlagbearer_BG30_119 ||\n\t\t\t\t\t\tentity.cardId === CardIds.SkyPirateFlagbearer_BG30_119_G\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 8);\n\t\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!!boardHero.trinkets?.length) {\n\t\tfor (const trinket of boardHero.trinkets) {\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.FeralTalisman_BG30_MagicItem_880:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 2);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 2);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 1);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 1);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FeralTalisman_FeralTalismanToken_BG30_MagicItem_880t:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 8);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 8);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 5);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 5);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.DazzlingDagger_BG32_MagicItem_934:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - (trinket.scriptDataNum1 || 1));\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - (trinket.scriptDataNum1 || 1));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.HordeKeychainToken_BG30_MagicItem_843t:\n\t\t\t\t\tif (gameState.cardsData.getTavernLevel(entity.cardId) <= 3) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 5);\n\t\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 5);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (boardHero.globalInfo.HauntedCarapaceAttackBonus > 0) {\n\t\tif (applyAttackAuras) {\n\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.HauntedCarapaceAttackBonus);\n\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.HauntedCarapaceAttackBonus);\n\t\t}\n\t}\n\tif (boardHero.globalInfo.HauntedCarapaceHealthBonus > 0) {\n\t\tif (applyHealthAuras) {\n\t\t\tentity.health = Math.max(1, entity.health - boardHero.globalInfo.HauntedCarapaceHealthBonus);\n\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - boardHero.globalInfo.HauntedCarapaceHealthBonus);\n\t\t}\n\t}\n\tif (hasCorrectTribe(entity, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.UndeadAttackBonus);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.UndeadAttackBonus);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(entity, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.GoldrinnBuffAtk > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.GoldrinnBuffAtk);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.GoldrinnBuffAtk);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - boardHero.globalInfo.GoldrinnBuffHealth);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - boardHero.globalInfo.GoldrinnBuffHealth);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const boardEntity of board) {\n\t\tswitch (boardEntity.cardId) {\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tentity.health -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxHealth = Math.max(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tentity.maxHealth -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t\t// \tif (\n\t\t\t// \t\thasCorrectTribe(entity, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards) &&\n\t\t\t// \t\tentity.entityId !== boardEntity.entityId\n\t\t\t// \t) {\n\t\t\t// \t\tentity.attack = Math.max(\n\t\t\t// \t\t\t0,\n\t\t\t// \t\t\tentity.attack - (boardEntity.cardId === CardIds.Kathranatir_BG21_039_G ? 2 : 1),\n\t\t\t// \t\t);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\t\tif (entity.divineShield) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack - (boardEntity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack - (boardEntity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SoreLoser_BG27_030:\n\t\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tswitch (entity.cardId) {\n\t\tcase CardIds.EternalKnight_BG25_008:\n\t\tcase CardIds.EternalKnight_BG25_008_G:\n\t\t\tconst multiplierKnight = entity.cardId === CardIds.EternalKnight_BG25_008_G ? 2 : 1;\n\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - eternalKnightAttack * statsBonusKnight);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - eternalKnightAttack * statsBonusKnight);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - eternalKnightHealth * statsBonusKnight);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - eternalKnightHealth * statsBonusKnight);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.EnsorcelledFungus_BG28_555:\n\t\tcase CardIds.EnsorcelledFungus_BG28_555_G:\n\t\t\tconst multiplierFungus = entity.cardId === CardIds.EnsorcelledFungus_BG28_555_G ? 2 : 1;\n\t\t\tconst statsBonusFungus = multiplierFungus * boardHero.globalInfo.TavernSpellsCastThisGame;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusFungus);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusFungus);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - 2 * statsBonusFungus);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 2 * statsBonusFungus);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.FlourishingFrostling_BG26_537:\n\t\tcase CardIds.FlourishingFrostling_BG26_537_G:\n\t\t\tconst multiplierFrostling = entity.cardId === CardIds.FlourishingFrostling_BG26_537_G ? 2 : 1;\n\t\t\tconst statsBonusFrostling = multiplierFrostling * boardHero.globalInfo.FrostlingBonus;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusFrostling);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusFrostling);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - statsBonusFrostling);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - statsBonusFrostling);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\tconst multiplierAstral = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t// We remove 1 because the AstralAutomatonsSummonedThisGame also includes the current one\n\t\t\t// and ancestral automaton only counts \"other\" automatons\n\t\t\tconst statsBonusAstral = multiplierAstral * (boardHero.globalInfo.AstralAutomatonsSummonedThisGame - 1);\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - 3 * statsBonusAstral);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 3 * statsBonusAstral);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - 2 * statsBonusAstral);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 2 * statsBonusAstral);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.RotHideGnoll_BG25_013:\n\t\tcase CardIds.RotHideGnoll_BG25_013_G:\n\t\t\tconst multiplierGnoll = entity.cardId === CardIds.RotHideGnoll_BG25_013_G ? 2 : 1;\n\t\t\tconst statsBonusGnoll =\n\t\t\t\tmultiplierGnoll * gameState.sharedState.deaths.filter((e) => e.friendly === entity.friendly).length;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusGnoll);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusGnoll);\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tfor (const enchantment of entity.enchantments) {\n\t\tswitch (enchantment?.cardId) {\n\t\t\tcase CardIds.TavernLighting_TavernLightsEnchantment:\n\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\tentity.attack = Math.max(0, entity.attack - enchantment.tagScriptDataNum1);\n\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - enchantment.tagScriptDataNum1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nconst handleMinionAddedAuraEffect = (\n\tspawnedCardId: string,\n\tspawned: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tisActuallySpawned = true,\n): void => {\n\tswitch (spawnedCardId) {\n\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards))\n\t\t\t\t// Other\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\te.health += spawned.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards))\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2;\n\t\t\t\t});\n\t\t\tbreak;\n\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t// \tboard\n\t\t// \t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards))\n\t\t// \t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t// \t\t.forEach((e) => {\n\t\t// \t\t\te.attack += spawned.cardId === CardIds.Kathranatir_BG21_039_G ? 4 : 2;\n\t\t// \t\t});\n\t\t// \tbreak;\n\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\tboard\n\t\t\t\t.filter((e) => e.divineShield)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6;\n\t\t\t\t});\n\t\t\tbreak;\n\n\t\tcase CardIds.SoreLoser_BG27_030:\n\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards))\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += (spawned.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier;\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\t// TODO: move this somewhere else\n\t\t\tif (isActuallySpawned) {\n\t\t\t\tboardHero.globalInfo.AstralAutomatonsSummonedThisGame++;\n\t\t\t}\n\t\t\tboard\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.filter(\n\t\t\t\t\t(e) =>\n\t\t\t\t\t\te.cardId === CardIds.AstralAutomaton_BG_TTN_401 ||\n\t\t\t\t\t\te.cardId === CardIds.AstralAutomaton_BG_TTN_401_G,\n\t\t\t\t)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\tconst multiplierAstral = e.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t\t\tmodifyStats(e, e, 3 * multiplierAstral, 2 * multiplierAstral, board, boardHero, gameState, false);\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.DrBoomsMonster_BG31_176:\n\t\tcase CardIds.DrBoomsMonster_BG31_176_G:\n\t\t\tconst multiplierDrBoom = spawned.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 2 : 1;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\t2 * boardHero.globalInfo.MagnetizedThisGame * multiplierDrBoom,\n\t\t\t\t2 * boardHero.globalInfo.MagnetizedThisGame * multiplierDrBoom,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\nexport const handleAfterSpawnEffects = (\n\tboard: BoardEntity[],\n\thero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tallSpawned: readonly BoardEntity[],\n\tgameState: FullGameState,\n): void => {\n\tfor (const spawned of allSpawned) {\n\t\thandleAfterSpawnEffect(board, hero, otherBoard, otherHero, spawned, gameState);\n\t}\n};\n\nexport const onMinionSummoned = (hero: BgsPlayerEntity, board: BoardEntity[], gameState: FullGameState): void => {\n\tconst quests = hero.questEntities ?? [];\n\tif (!quests.length) {\n\t\treturn;\n\t}\n\n\tfor (const quest of quests) {\n\t\tswitch (quest.CardId) {\n\t\t\tcase CardIds.AssembleALineup:\n\t\t\t\tonQuestProgressUpdated(hero, quest, board, gameState);\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nconst handleAfterSpawnEffect = (\n\tboard: BoardEntity[],\n\thero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n): void => {\n\t// So that spawns don't mess up the loop\n\tconst initialBoard = [...board];\n\n\tfor (const trinket of hero.trinkets ?? []) {\n\t\tconst onAfterSpawnedImpl = cardMappings[trinket.cardId];\n\t\tif (hasAfterOtherSpawned(onAfterSpawnedImpl)) {\n\t\t\tonAfterSpawnedImpl.afterOtherSpawned(trinket, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: hero,\n\t\t\t\tboard: board,\n\t\t\t\totherHero: otherHero,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\tgameState,\n\t\t\t\tapplySelfAuras: false,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tfor (const entity of initialBoard) {\n\t\tif (entity.entityId === spawned.entityId) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst onAfterSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasAfterOtherSpawned(onAfterSpawnedImpl)) {\n\t\t\tonAfterSpawnedImpl.afterOtherSpawned(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: hero,\n\t\t\t\tboard: board,\n\t\t\t\totherHero: otherHero,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\tgameState,\n\t\t\t\tapplySelfAuras: false,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t});\n\t\t}\n\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.XyloBones_BG26_172:\n\t\t\tcase CardIds.XyloBones_BG26_172_G:\n\t\t\t\tif (entity.entityId !== spawned.entityId) {\n\t\t\t\t\tconst xylobonesBuff = entity.cardId === CardIds.XyloBones_BG26_172_G ? 4 : 2;\n\t\t\t\t\tmodifyStats(entity, entity, 0, xylobonesBuff, board, hero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\n\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\n\t\t\t\tif (entity.entityId !== spawned.entityId) {\n\t\t\t\t\tconst octoStats = entity.cardId === CardIds.OctosariWrapGod_BG26_804_G ? 4 : 2;\n\t\t\t\t\tentity.scriptDataNum1 = (entity.scriptDataNum1 ?? 0) + octoStats;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.ObserverOfMyths_BG_TTN_078:\n\t\t\t// case CardIds.ObserverOfMyths_BG_TTN_078_G:\n\t\t\t// \tif (spawned.attack > entity.attack) {\n\t\t\t// \t\tconst observerBuff = entity.cardId === CardIds.ObserverOfMyths_BG_TTN_078_G ? 2 : 1;\n\t\t\t// \t\taddStatsToBoard(entity, board, hero, observerBuff, 0, gameState);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy:\n\t\t\tcase CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, hero, Race.DRAGON, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tconst valithriaBuff =\n\t\t\t\t\t\tentity.cardId === CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy_G ? 3 : 2;\n\t\t\t\t\tmodifyStats(entity, entity, valithriaBuff, valithriaBuff, board, hero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, spawned, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Putricide-only\n\t\t\tcase CardIds.ArmsDealer_BG26_RLK_824:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, hero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tmodifyStats(spawned, spawned, 1, 0, board, hero, gameState, false);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nexport interface OnSpawnInput {\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\nexport interface OnOtherSpawnInput {\n\tspawned: BoardEntity;\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\totherHero: BgsPlayerEntity;\n\totherBoard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n\tapplySelfAuras: boolean;\n}\nexport interface OnOtherSpawnAuraInput {\n\tspawned: BoardEntity;\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\nexport interface OnDespawnInput {\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\t// Slamma + Goldrinn interaction is:\n\t// - set the stats to (double_attack, health)\n\t// - re-apply only the \"attack\" portion of the aura\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\n\n/** Trinket reaction when a minion is placed on the friendly board (`handleAddedMinionAuraEffect`, after hero power / quest hooks). */\nexport interface OnFriendlyMinionSummonedTrinketInput {\n\tspawned: BoardEntity;\n\tboard: BoardEntity[];\n\thero: BgsPlayerEntity;\n\totherBoard: BoardEntity[];\n\totherHero: BgsPlayerEntity;\n\tgameState: FullGameState;\n}\n"]}
1
+ {"version":3,"file":"add-minion-to-board.js","sourceRoot":"","sources":["../../src/simulation/add-minion-to-board.ts"],"names":[],"mappings":"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","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\nimport { BgsPlayerEntity } from '../bgs-player-entity';\nimport { BoardEntity } from '../board-entity';\nimport {\n\thasAfterOtherSpawned,\n\thasOnDespawned,\n\thasOnFriendlyMinionSummonedTrinket,\n\thasOnOtherSpawned,\n\thasOnOtherAuraSpawned as hasOnOtherSpawnedAura,\n\thasOnSpawned,\n} from '../cards/card.interface';\nimport { isWhelp } from '../cards/cards-data';\nimport { cardMappings } from '../cards/impl/_card-mappings';\nimport { eternalKnightAttack, eternalKnightHealth } from '../cards/impl/trinket/eternal-portrait';\nimport { updateDivineShield } from '../keywords/divine-shield';\nimport { updateTaunt } from '../keywords/taunt';\nimport { CardIds } from '../services/card-ids';\nimport { pickRandom } from '../services/utils';\nimport { alreadyHasVolumizerBuff, copyEntity, hasCorrectTribe, isVolumizer } from '../utils';\nimport { FullGameState } from './internal-game-state';\nimport { onQuestProgressUpdated } from './quest';\nimport { modifyStats } from './stats';\n\n// export const addMinionsToBoard = (\n// \tboard: BoardEntity[],\n// \tboardHero: BgsPlayerEntity,\n// \totherBoard: BoardEntity[],\n// \totherHero: BgsPlayerEntity,\n// \tindex: number,\n// \tminionsToAdd: readonly BoardEntity[],\n// \tgameState: FullGameState,\n// ): void => {\n// \t// board.splice(index, 0, ...minionsToAdd);\n// \tfor (const minionToAdd of [...minionsToAdd].reverse()) {\n// \t\taddMinionToBoard(board, boardHero, otherBoard, otherHero, index, minionToAdd, gameState, false);\n// \t}\n// \thandleAfterSpawnEffects(board, boardHero, otherBoard, otherHero, minionsToAdd, gameState);\n// };\n\nexport const addMinionToBoard = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tindex: number,\n\tminionToAdd: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n): void => {\n\tboard.splice(index, 0, minionToAdd);\n\t// Minion has already been removed from the board in the previous step\n\t// Update the global \"SummonedThisGame/Combat\" info here\n\thandleAddedMinionAuraEffect(board, boardHero, otherBoard, otherHero, minionToAdd, gameState, applySelfAuras);\n\t// Important to do this here, so that \"attack immediately\" minions can be taken into account by the quests\n\tonMinionSummoned(boardHero, board, gameState);\n\thandleSpawnEffect(board, boardHero, otherBoard, otherHero, minionToAdd, gameState, applySelfAuras);\n};\n\nconst handleSpawnEffect = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n): void => {\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\n\n\t// https://twitter.com/LoewenMitchell/status/1491879869457879040\n\tif (cardIds.some((cardId) => isWhelp(cardId, gameState.allCards))) {\n\t\tconst manyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps_BG22_HERO_305_Buddy);\n\t\tconst goldenManyWhelps = board.filter((entity) => entity.cardId === CardIds.ManyWhelps_BG22_HERO_305_Buddy_G);\n\t\tmanyWhelps.forEach((entity) => {\n\t\t\tmodifyStats(entity, entity, 2, 2, board, boardHero, gameState);\n\t\t});\n\t\tgoldenManyWhelps.forEach((entity) => {\n\t\t\tmodifyStats(entity, entity, 4, 4, board, boardHero, gameState);\n\t\t});\n\t}\n\n\tfor (const entity of board) {\n\t\t// The case for Reborns, and these shouldn't proc on themselves\n\t\tif (entity.entityId === spawned.entityId) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst onOtherSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasOnOtherSpawned(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawned(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\totherHero: otherHero,\n\t\t\t\tapplySelfAuras,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t\tgameState,\n\t\t\t});\n\t\t}\n\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.CobaltGuardian:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.MECH, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tif (!entity.divineShield) {\n\t\t\t\t\t\tupdateDivineShield(entity, board, boardHero, otherHero, true, gameState);\n\t\t\t\t\t}\n\t\t\t\t\tmodifyStats(entity, entity, 2, 0, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Bigfernal_BGS_204:\n\t\t\t// case CardIds.Bigfernal_TB_BaconUps_304:\n\t\t\t// \tif (hasCorrectTribe(spawned, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards)) {\n\t\t\t// \t\tconst statsBonus = entity.cardId === CardIds.Bigfernal_TB_BaconUps_304 ? 2 : 1;\n\t\t\t// \t\tmodifyStats(entity, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t// \t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.MamaBear_BGS_021:\n\t\t\tcase CardIds.MamaBear_TB_BaconUps_090:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.MamaBear_TB_BaconUps_090 ? 12 : 6;\n\t\t\t\t\tmodifyStats(spawned, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.PapaBear_BG27_509:\n\t\t\t// case CardIds.PapaBear_BG27_509_G:\n\t\t\t// \tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t// \t\tconst statsBonus = entity.cardId === CardIds.PapaBear_BG27_509_G ? 16 : 8;\n\t\t\t// \t\tmodifyStats(spawned, entity, statsBonus, statsBonus, board, boardHero, gameState);\n\t\t\t// \t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.PackLeader_BGS_017:\n\t\t\tcase CardIds.PackLeader_TB_BaconUps_086:\n\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\tconst statsBonus = entity.cardId === CardIds.PackLeader_TB_BaconUps_086 ? 4 : 2;\n\t\t\t\t\tmodifyStats(spawned, entity, statsBonus, 0, board, boardHero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, boardHero, otherHero);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfor (const trinket of boardHero.trinkets ?? []) {\n\t\tconst onOtherSpawnedImpl = cardMappings[trinket.cardId];\n\t\tif (hasOnOtherSpawned(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawned(trinket, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\totherHero: otherHero,\n\t\t\t\tapplySelfAuras,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t\tgameState,\n\t\t\t});\n\t\t}\n\t}\n};\nexport const handleAddedMinionAuraEffect = (\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n\tapplySelfAuras = true,\n\tisActuallySpawned = true,\n): void => {\n\tfor (const heroPower of boardHero.heroPowers) {\n\t\tswitch (heroPower.cardId) {\n\t\t\tcase CardIds.SproutItOut:\n\t\t\t\tif (isActuallySpawned) {\n\t\t\t\t\tupdateTaunt(spawned, true, board, boardHero, otherHero, gameState);\n\t\t\t\t\tmodifyStats(spawned, boardHero, 1, 2, board, boardHero, gameState);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (boardHero.questRewards?.includes(CardIds.TumblingDisaster_BG28_Reward_505)) {\n\t\tconst tumblingDisasterBonus =\n\t\t\tboardHero.questRewardEntities?.find((e) => e.cardId === CardIds.TumblingDisaster_BG28_Reward_505)\n\t\t\t\t?.scriptDataNum1 || 1;\n\t\tmodifyStats(spawned, boardHero, tumblingDisasterBonus, tumblingDisasterBonus, board, boardHero, gameState);\n\t}\n\n\tif (isActuallySpawned) {\n\t\tfor (const trinket of boardHero.trinkets ?? []) {\n\t\t\tconst summonedImpl = cardMappings[trinket.cardId];\n\t\t\tif (hasOnFriendlyMinionSummonedTrinket(summonedImpl)) {\n\t\t\t\tsummonedImpl.onFriendlyMinionSummoned(trinket, {\n\t\t\t\t\tspawned,\n\t\t\t\t\tboard,\n\t\t\t\t\thero: boardHero,\n\t\t\t\t\totherBoard,\n\t\t\t\t\totherHero,\n\t\t\t\t\tgameState,\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.BlingtronsSunglasses_BG30_MagicItem_978:\n\t\t\t\t\tif (hasCorrectTribe(spawned, boardHero, Race.MECH, gameState.anomalies, gameState.allCards)) {\n\t\t\t\t\t\tconst target = pickRandom(board.filter((e) => !e.divineShield));\n\t\t\t\t\t\tif (!!target) {\n\t\t\t\t\t\t\tupdateDivineShield(target, board, boardHero, otherHero, true, gameState);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TwinSkyLanterns_BG30_MagicItem_822:\n\t\t\t\tcase CardIds.TwinSkyLanterns_TwinSkyLanternsToken_BG30_MagicItem_822t2:\n\t\t\t\t\tif (!trinket.rememberedMinion) {\n\t\t\t\t\t\ttrinket.rememberedMinion = copyEntity(spawned);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Apply auras to board\n\tconst cardIds = [spawned.cardId, ...(spawned.additionalCards ?? [])];\n\tfor (const spawnedCardId of cardIds) {\n\t\thandleMinionAddedAuraEffect(spawnedCardId, spawned, board, boardHero, gameState, isActuallySpawned);\n\t}\n\n\t// When we want to summon an \"exact copy\", we need to make sure we don't apply the aura twice\n\tif (applySelfAuras) {\n\t\t// The board here already contains the new minion\n\t\t// TODO: what if the additional part is a potential target for the aura effect?\n\t\t// 2024-08-27: changing the order to first handleMinionAddedAuraEffect so that the automatons get boosted,\n\t\t// then apply the aura\n\t\tapplyAurasToSelf(spawned, board, boardHero, gameState);\n\t}\n\n\tif (isActuallySpawned) {\n\t\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\t\tboardHero.globalInfo.BeastsSummonedThisCombat++;\n\t\t\tboardHero.globalInfo.BeastsSummonedThisGame++;\n\t\t}\n\t\tif (hasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards)) {\n\t\t\tboardHero.globalInfo.PiratesSummonedThisGame++;\n\t\t}\n\t}\n};\n\nexport const applyAurasToSelf = (\n\tspawned: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tapplyAttackAuras = true,\n\tapplyHealthAuras = true,\n): void => {\n\tif (applyAttackAuras) {\n\t\tspawned.attack += boardHero.globalInfo.AdditionalAttack;\n\t}\n\n\tif (!!boardHero.questRewards?.length) {\n\t\tfor (const quest of boardHero.questRewards) {\n\t\t\tswitch (quest) {\n\t\t\t\tcase CardIds.VolatileVenom:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 7;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 7;\n\t\t\t\t\t}\n\t\t\t\t\tspawned.enchantments.push({\n\t\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\n\t\t\t\t\t\toriginEntityId: undefined,\n\t\t\t\t\t\ttiming: gameState.sharedState.currentEntityId++,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TheSmokingGun:\n\t\t\t\t\tspawned.attack += 4;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!!boardHero.trinkets?.length) {\n\t\tfor (const trinket of boardHero.trinkets) {\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.FeralTalisman_BG30_MagicItem_880:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 2;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 1;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FeralTalisman_FeralTalismanToken_BG30_MagicItem_880t:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += 8;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += 5;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.DazzlingDagger_BG32_MagicItem_934:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += trinket.scriptDataNum1 || 1;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.HordeKeychainToken_BG30_MagicItem_843t:\n\t\t\t\t\tif (gameState.cardsData.getTavernLevel(spawned.cardId) <= 3) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tspawned.attack += 7;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\t\tspawned.health += 5;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FlagbearerPortrait_BG30_MagicItem_921:\n\t\t\t\t\tif (\n\t\t\t\t\t\tspawned.cardId === CardIds.Scallywag_SkyPirateToken_BGS_061t ||\n\t\t\t\t\t\tspawned.cardId === CardIds.Scallywag_SkyPirateToken_TB_BaconUps_141t\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tspawned.attack += 6;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (boardHero.globalInfo.HauntedCarapaceAttackBonus > 0) {\n\t\tif (applyAttackAuras) {\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\tboardHero.globalInfo.HauntedCarapaceAttackBonus,\n\t\t\t\t0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t}\n\tif (boardHero.globalInfo.HauntedCarapaceHealthBonus > 0) {\n\t\tif (applyHealthAuras) {\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\t0,\n\t\t\t\tboardHero.globalInfo.HauntedCarapaceHealthBonus,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tmodifyStats(\n\t\t\t\t\tspawned,\n\t\t\t\t\tspawned,\n\t\t\t\t\tboardHero.globalInfo.UndeadAttackBonus,\n\t\t\t\t\t0,\n\t\t\t\t\tboard,\n\t\t\t\t\tboardHero,\n\t\t\t\t\tgameState,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (boardHero.globalInfo.UndeadHealthBonus > 0) {\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tmodifyStats(\n\t\t\t\t\tspawned,\n\t\t\t\t\tspawned,\n\t\t\t\t\t0,\n\t\t\t\t\tboardHero.globalInfo.UndeadHealthBonus,\n\t\t\t\t\tboard,\n\t\t\t\t\tboardHero,\n\t\t\t\t\tgameState,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.PirateAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tmodifyStats(\n\t\t\t\t\tspawned,\n\t\t\t\t\tspawned,\n\t\t\t\t\tboardHero.globalInfo.PirateAttackBonus,\n\t\t\t\t\t0,\n\t\t\t\t\tboard,\n\t\t\t\t\tboardHero,\n\t\t\t\t\tgameState,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(spawned, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.GoldrinnBuffAtk > 0) {\n\t\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.GoldrinnBuffAtk : 0;\n\t\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.GoldrinnBuffHealth : 0;\n\t\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t\t}\n\t}\n\tif (isWhelp(spawned.cardId, gameState.allCards)) {\n\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.WhelpAttackBuff ?? 0 : 0;\n\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.WhelpHealthBuff ?? 0 : 0;\n\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t}\n\tif (\n\t\tisVolumizer(spawned.cardId, boardHero, gameState.anomalies, gameState.allCards) &&\n\t\t// https://replays.firestoneapp.com/?reviewId=75e82ef1-3442-4307-a3c8-4a3b72fcf6af&turn=11&action=2\n\t\t!alreadyHasVolumizerBuff(spawned, boardHero, gameState)\n\t) {\n\t\tif (boardHero.globalInfo.VolumizerAttackBuff > 0 || boardHero.globalInfo.VolumizerHealthBuff > 0) {\n\t\t\tconst attackBuff = applyAttackAuras ? boardHero.globalInfo.VolumizerAttackBuff ?? 0 : 0;\n\t\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.VolumizerHealthBuff ?? 0 : 0;\n\t\t\tmodifyStats(spawned, spawned, attackBuff, healthBuff, board, boardHero, gameState, false);\n\t\t\tgameState.spectator.registerPowerTarget(boardHero, spawned, board, null, null);\n\t\t}\n\t}\n\n\t// In case Putricide spawns a stictched minion whose stitched part creates an aura effect\n\t// const potentialAuraSources: { cardId: string; entityId: number }[] = [\n\t// \t{ cardId: spawned.cardId, entityId: spawned.entityId },\n\t// \t...(spawned.additionalCards ?? []).map((cardId) => ({ cardId, entityId: spawned.entityId })),\n\t// ];\n\n\tif (gameState.cardsData.getTavernLevel(spawned.cardId) % 2 === 1) {\n\t\tconst atkBuff = applyAttackAuras ? boardHero.globalInfo.MutatedLasherAttackBuff ?? 0 : 0;\n\t\tconst healthBuff = applyHealthAuras ? boardHero.globalInfo.MutatedLasherHealthBuff ?? 0 : 0;\n\t\tmodifyStats(spawned, spawned, atkBuff, healthBuff, board, boardHero, gameState, false);\n\t}\n\tfor (const entity of board) {\n\t\tconst onOtherSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasOnOtherSpawnedAura(onOtherSpawnedImpl)) {\n\t\t\tonOtherSpawnedImpl.onOtherSpawnedAura(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: boardHero,\n\t\t\t\tboard: board,\n\t\t\t\tgameState,\n\t\t\t\tapplyAttackAuras,\n\t\t\t\tapplyHealthAuras,\n\t\t\t});\n\t\t}\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tspawned.health += entity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t\t// \tif (\n\t\t\t// \t\thasCorrectTribe(spawned, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards) &&\n\t\t\t// \t\tentity.entityId !== spawned.entityId\n\t\t\t// \t) {\n\t\t\t// \t\tspawned.attack += entity.cardId === CardIds.Kathranatir_BG21_039_G ? 2 : 1;\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\t\tif (spawned.divineShield) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack += entity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SoreLoser_BG27_030:\n\t\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tspawned.attack +=\n\t\t\t\t\t\t\t(entity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst onSpawnedImpl = cardMappings[spawned.cardId];\n\tif (hasOnSpawned(onSpawnedImpl)) {\n\t\tonSpawnedImpl.onSpawned(spawned, {\n\t\t\thero: boardHero,\n\t\t\tboard: board,\n\t\t\tgameState: gameState,\n\t\t\tapplyAttackAuras,\n\t\t\tapplyHealthAuras,\n\t\t});\n\t}\n\tswitch (spawned.cardId) {\n\t\tcase CardIds.EternalKnight_BG25_008:\n\t\tcase CardIds.EternalKnight_BG25_008_G:\n\t\t\tconst multiplierKnight = spawned.cardId === CardIds.EternalKnight_BG25_008_G ? 2 : 1;\n\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? eternalKnightAttack * statsBonusKnight : 0,\n\t\t\t\tapplyHealthAuras ? eternalKnightHealth * statsBonusKnight : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.EnsorcelledFungus_BG28_555:\n\t\tcase CardIds.EnsorcelledFungus_BG28_555_G:\n\t\t\tconst multiplierFungus = spawned.cardId === CardIds.EnsorcelledFungus_BG28_555_G ? 2 : 1;\n\t\t\tconst statsBonusFungus = multiplierFungus * boardHero.globalInfo.TavernSpellsCastThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? statsBonusFungus : 0,\n\t\t\t\tapplyHealthAuras ? 2 * statsBonusFungus : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.FlourishingFrostling_BG26_537:\n\t\tcase CardIds.FlourishingFrostling_BG26_537_G:\n\t\t\tconst multiplierFrostling = spawned.cardId === CardIds.FlourishingFrostling_BG26_537_G ? 2 : 1;\n\t\t\tconst statsBonusFrostling = multiplierFrostling * boardHero.globalInfo.FrostlingBonus;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 2 * statsBonusFrostling : 0,\n\t\t\t\tapplyHealthAuras ? statsBonusFrostling : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.SaltyLooter_BGS_081:\n\t\tcase CardIds.SaltyLooter_TB_BaconUps_143:\n\t\t\tconst multiplierLooter = spawned.cardId === CardIds.SaltyLooter_TB_BaconUps_143 ? 2 : 1;\n\t\t\tconst statsBonusLooter = multiplierLooter * boardHero.globalInfo.PiratesSummonedThisGame;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 2 * statsBonusLooter : 0,\n\t\t\t\tapplyHealthAuras ? 2 * multiplierLooter : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\tconst multiplierAstral = spawned.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t// Don't count the yourself\n\t\t\tconst statsBonusAstral = multiplierAstral * (boardHero.globalInfo.AstralAutomatonsSummonedThisGame - 1);\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? 3 * statsBonusAstral : 0,\n\t\t\t\tapplyHealthAuras ? 2 * statsBonusAstral : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t\tcase CardIds.RotHideGnoll_BG25_013:\n\t\tcase CardIds.RotHideGnoll_BG25_013_G:\n\t\t\tconst multiplierGnoll = spawned.cardId === CardIds.RotHideGnoll_BG25_013_G ? 2 : 1;\n\t\t\tconst statsBonusGnoll =\n\t\t\t\tmultiplierGnoll * gameState.sharedState.deaths.filter((e) => e.friendly === spawned.friendly).length;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tnull,\n\t\t\t\tapplyAttackAuras ? statsBonusGnoll : 0,\n\t\t\t\tapplyHealthAuras ? 0 : 0,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\n// Introduced for Rapid Reanimation: since we will \"addMinionToBoard\" the minion afterwards, the auras will\n// be re-applied then, so we need to remove them first\nexport const removeAurasFromSelf = (\n\tentity: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tapplyAttackAuras = true,\n\tapplyHealthAuras = true,\n): void => {\n\tif (applyAttackAuras) {\n\t\tentity.attack -= Math.max(0, boardHero.globalInfo.AdditionalAttack);\n\t\tentity.maxAttack -= Math.max(0, boardHero.globalInfo.AdditionalAttack);\n\t}\n\n\tconst onDespawnedImpl = cardMappings[entity.cardId];\n\tif (hasOnDespawned(onDespawnedImpl)) {\n\t\tonDespawnedImpl.onDespawned(entity, {\n\t\t\thero: boardHero,\n\t\t\tboard: board,\n\t\t\tgameState,\n\t\t\tapplyAttackAuras,\n\t\t\tapplyHealthAuras,\n\t\t});\n\t}\n\n\tif (!!boardHero.questRewards?.length) {\n\t\tfor (const quest of boardHero.questRewards) {\n\t\t\tswitch (quest) {\n\t\t\t\tcase CardIds.VolatileVenom:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 7);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.health - 7);\n\t\t\t\t\t}\n\t\t\t\t\tentity.enchantments = entity.enchantments.filter(\n\t\t\t\t\t\t(e) => e.cardId !== CardIds.VolatileVenom_VolatileEnchantment,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.TheSmokingGun:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FlagbearerPortrait_BG30_MagicItem_921:\n\t\t\t\t\tif (\n\t\t\t\t\t\tentity.cardId === CardIds.SkyPirateFlagbearer_BG30_119 ||\n\t\t\t\t\t\tentity.cardId === CardIds.SkyPirateFlagbearer_BG30_119_G\n\t\t\t\t\t) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 8);\n\t\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!!boardHero.trinkets?.length) {\n\t\tfor (const trinket of boardHero.trinkets) {\n\t\t\tswitch (trinket.cardId) {\n\t\t\t\tcase CardIds.FeralTalisman_BG30_MagicItem_880:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 2);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 2);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 1);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 1);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.FeralTalisman_FeralTalismanToken_BG30_MagicItem_880t:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 8);\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 8);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 5);\n\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 5);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.DazzlingDagger_BG32_MagicItem_934:\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - (trinket.scriptDataNum1 || 1));\n\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - (trinket.scriptDataNum1 || 1));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase CardIds.HordeKeychainToken_BG30_MagicItem_843t:\n\t\t\t\t\tif (gameState.cardsData.getTavernLevel(entity.cardId) <= 3) {\n\t\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\t\tentity.attack = Math.max(0, entity.attack - 7);\n\t\t\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 7);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\t\tentity.health = Math.max(1, entity.health - 5);\n\t\t\t\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 5);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (boardHero.globalInfo.HauntedCarapaceAttackBonus > 0) {\n\t\tif (applyAttackAuras) {\n\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.HauntedCarapaceAttackBonus);\n\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.HauntedCarapaceAttackBonus);\n\t\t}\n\t}\n\tif (boardHero.globalInfo.HauntedCarapaceHealthBonus > 0) {\n\t\tif (applyHealthAuras) {\n\t\t\tentity.health = Math.max(1, entity.health - boardHero.globalInfo.HauntedCarapaceHealthBonus);\n\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - boardHero.globalInfo.HauntedCarapaceHealthBonus);\n\t\t}\n\t}\n\tif (hasCorrectTribe(entity, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.UndeadAttackBonus > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.UndeadAttackBonus);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.UndeadAttackBonus);\n\t\t\t}\n\t\t}\n\t\tif (boardHero.globalInfo.UndeadHealthBonus > 0) {\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - boardHero.globalInfo.UndeadHealthBonus);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - boardHero.globalInfo.UndeadHealthBonus);\n\t\t\t}\n\t\t}\n\t}\n\tif (hasCorrectTribe(entity, boardHero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\n\t\tif (boardHero.globalInfo.GoldrinnBuffAtk > 0) {\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - boardHero.globalInfo.GoldrinnBuffAtk);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - boardHero.globalInfo.GoldrinnBuffAtk);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - boardHero.globalInfo.GoldrinnBuffHealth);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - boardHero.globalInfo.GoldrinnBuffHealth);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const boardEntity of board) {\n\t\tswitch (boardEntity.cardId) {\n\t\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (applyHealthAuras) {\n\t\t\t\t\t\tentity.health = Math.max(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tentity.health -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxHealth = Math.max(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tentity.maxHealth -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t\t// \tif (\n\t\t\t// \t\thasCorrectTribe(entity, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards) &&\n\t\t\t// \t\tentity.entityId !== boardEntity.entityId\n\t\t\t// \t) {\n\t\t\t// \t\tentity.attack = Math.max(\n\t\t\t// \t\t\t0,\n\t\t\t// \t\t\tentity.attack - (boardEntity.cardId === CardIds.Kathranatir_BG21_039_G ? 2 : 1),\n\t\t\t// \t\t);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\t\tif (entity.divineShield) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack - (boardEntity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack - (boardEntity.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.SoreLoser_BG27_030:\n\t\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(entity, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== boardEntity.entityId\n\t\t\t\t) {\n\t\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\t\tentity.attack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.attack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tentity.maxAttack = Math.max(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tentity.maxAttack -\n\t\t\t\t\t\t\t\t(boardEntity.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tswitch (entity.cardId) {\n\t\tcase CardIds.EternalKnight_BG25_008:\n\t\tcase CardIds.EternalKnight_BG25_008_G:\n\t\t\tconst multiplierKnight = entity.cardId === CardIds.EternalKnight_BG25_008_G ? 2 : 1;\n\t\t\tconst statsBonusKnight = multiplierKnight * boardHero.globalInfo.EternalKnightsDeadThisGame;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - eternalKnightAttack * statsBonusKnight);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - eternalKnightAttack * statsBonusKnight);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - eternalKnightHealth * statsBonusKnight);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - eternalKnightHealth * statsBonusKnight);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.EnsorcelledFungus_BG28_555:\n\t\tcase CardIds.EnsorcelledFungus_BG28_555_G:\n\t\t\tconst multiplierFungus = entity.cardId === CardIds.EnsorcelledFungus_BG28_555_G ? 2 : 1;\n\t\t\tconst statsBonusFungus = multiplierFungus * boardHero.globalInfo.TavernSpellsCastThisGame;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusFungus);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusFungus);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - 2 * statsBonusFungus);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 2 * statsBonusFungus);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.FlourishingFrostling_BG26_537:\n\t\tcase CardIds.FlourishingFrostling_BG26_537_G:\n\t\t\tconst multiplierFrostling = entity.cardId === CardIds.FlourishingFrostling_BG26_537_G ? 2 : 1;\n\t\t\tconst statsBonusFrostling = multiplierFrostling * boardHero.globalInfo.FrostlingBonus;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusFrostling);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusFrostling);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - statsBonusFrostling);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - statsBonusFrostling);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\tconst multiplierAstral = entity.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t// We remove 1 because the AstralAutomatonsSummonedThisGame also includes the current one\n\t\t\t// and ancestral automaton only counts \"other\" automatons\n\t\t\tconst statsBonusAstral = multiplierAstral * (boardHero.globalInfo.AstralAutomatonsSummonedThisGame - 1);\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - 3 * statsBonusAstral);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - 3 * statsBonusAstral);\n\t\t\t}\n\t\t\tif (applyHealthAuras) {\n\t\t\t\tentity.health = Math.max(1, entity.health - 2 * statsBonusAstral);\n\t\t\t\tentity.maxHealth = Math.max(1, entity.maxHealth - 2 * statsBonusAstral);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase CardIds.RotHideGnoll_BG25_013:\n\t\tcase CardIds.RotHideGnoll_BG25_013_G:\n\t\t\tconst multiplierGnoll = entity.cardId === CardIds.RotHideGnoll_BG25_013_G ? 2 : 1;\n\t\t\tconst statsBonusGnoll =\n\t\t\t\tmultiplierGnoll * gameState.sharedState.deaths.filter((e) => e.friendly === entity.friendly).length;\n\t\t\tif (applyAttackAuras) {\n\t\t\t\tentity.attack = Math.max(0, entity.attack - statsBonusGnoll);\n\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - statsBonusGnoll);\n\t\t\t}\n\t\t\tbreak;\n\t}\n\n\tfor (const enchantment of entity.enchantments) {\n\t\tswitch (enchantment?.cardId) {\n\t\t\tcase CardIds.TavernLighting_TavernLightsEnchantment:\n\t\t\t\tif (applyAttackAuras) {\n\t\t\t\t\tentity.attack = Math.max(0, entity.attack - enchantment.tagScriptDataNum1);\n\t\t\t\t\tentity.maxAttack = Math.max(0, entity.maxAttack - enchantment.tagScriptDataNum1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nconst handleMinionAddedAuraEffect = (\n\tspawnedCardId: string,\n\tspawned: BoardEntity,\n\tboard: BoardEntity[],\n\tboardHero: BgsPlayerEntity,\n\tgameState: FullGameState,\n\tisActuallySpawned = true,\n): void => {\n\tswitch (spawnedCardId) {\n\t\tcase CardIds.SouthseaCaptainLegacy_BG_NEW1_027:\n\t\tcase CardIds.SouthseaCaptainLegacy_TB_BaconUps_136:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, gameState.anomalies, gameState.allCards))\n\t\t\t\t// Other\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t\te.health += spawned.cardId === CardIds.SouthseaCaptainLegacy_TB_BaconUps_136 ? 2 : 1;\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.MurlocWarleaderLegacy_BG_EX1_507:\n\t\tcase CardIds.MurlocWarleaderLegacy_TB_BaconUps_008:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, gameState.anomalies, gameState.allCards))\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.MurlocWarleaderLegacy_TB_BaconUps_008 ? 4 : 2;\n\t\t\t\t});\n\t\t\tbreak;\n\t\t// case CardIds.Kathranatir_BG21_039:\n\t\t// case CardIds.Kathranatir_BG21_039_G:\n\t\t// \tboard\n\t\t// \t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, gameState.anomalies, gameState.allCards))\n\t\t// \t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t// \t\t.forEach((e) => {\n\t\t// \t\t\te.attack += spawned.cardId === CardIds.Kathranatir_BG21_039_G ? 4 : 2;\n\t\t// \t\t});\n\t\t// \tbreak;\n\t\tcase CardIds.CyborgDrake_BG25_043:\n\t\tcase CardIds.CyborgDrake_BG25_043_G:\n\t\t\tboard\n\t\t\t\t.filter((e) => e.divineShield)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += spawned.cardId === CardIds.CyborgDrake_BG25_043_G ? 12 : 6;\n\t\t\t\t});\n\t\t\tbreak;\n\n\t\tcase CardIds.SoreLoser_BG27_030:\n\t\tcase CardIds.SoreLoser_BG27_030_G:\n\t\t\tboard\n\t\t\t\t.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, gameState.anomalies, gameState.allCards))\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\te.attack += (spawned.cardId === CardIds.SoreLoser_BG27_030_G ? 2 : 1) * boardHero.tavernTier;\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401:\n\t\tcase CardIds.AstralAutomaton_BG_TTN_401_G:\n\t\t\t// TODO: move this somewhere else\n\t\t\tif (isActuallySpawned) {\n\t\t\t\tboardHero.globalInfo.AstralAutomatonsSummonedThisGame++;\n\t\t\t}\n\t\t\tboard\n\t\t\t\t.filter((e) => e.entityId !== spawned.entityId)\n\t\t\t\t.filter(\n\t\t\t\t\t(e) =>\n\t\t\t\t\t\te.cardId === CardIds.AstralAutomaton_BG_TTN_401 ||\n\t\t\t\t\t\te.cardId === CardIds.AstralAutomaton_BG_TTN_401_G,\n\t\t\t\t)\n\t\t\t\t.forEach((e) => {\n\t\t\t\t\tconst multiplierAstral = e.cardId === CardIds.AstralAutomaton_BG_TTN_401_G ? 2 : 1;\n\t\t\t\t\tmodifyStats(e, e, 3 * multiplierAstral, 2 * multiplierAstral, board, boardHero, gameState, false);\n\t\t\t\t});\n\t\t\tbreak;\n\t\tcase CardIds.DrBoomsMonster_BG31_176:\n\t\tcase CardIds.DrBoomsMonster_BG31_176_G:\n\t\t\tconst multiplierDrBoom = spawned.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 2 : 1;\n\t\t\tmodifyStats(\n\t\t\t\tspawned,\n\t\t\t\tspawned,\n\t\t\t\t2 * boardHero.globalInfo.MagnetizedThisGame * multiplierDrBoom,\n\t\t\t\t2 * boardHero.globalInfo.MagnetizedThisGame * multiplierDrBoom,\n\t\t\t\tboard,\n\t\t\t\tboardHero,\n\t\t\t\tgameState,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tbreak;\n\t}\n};\n\nexport const handleAfterSpawnEffects = (\n\tboard: BoardEntity[],\n\thero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tallSpawned: readonly BoardEntity[],\n\tgameState: FullGameState,\n): void => {\n\tfor (const spawned of allSpawned) {\n\t\thandleAfterSpawnEffect(board, hero, otherBoard, otherHero, spawned, gameState);\n\t}\n};\n\nexport const onMinionSummoned = (hero: BgsPlayerEntity, board: BoardEntity[], gameState: FullGameState): void => {\n\tconst quests = hero.questEntities ?? [];\n\tif (!quests.length) {\n\t\treturn;\n\t}\n\n\tfor (const quest of quests) {\n\t\tswitch (quest.CardId) {\n\t\t\tcase CardIds.AssembleALineup:\n\t\t\t\tonQuestProgressUpdated(hero, quest, board, gameState);\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nconst handleAfterSpawnEffect = (\n\tboard: BoardEntity[],\n\thero: BgsPlayerEntity,\n\totherBoard: BoardEntity[],\n\totherHero: BgsPlayerEntity,\n\tspawned: BoardEntity,\n\tgameState: FullGameState,\n): void => {\n\t// So that spawns don't mess up the loop\n\tconst initialBoard = [...board];\n\n\tfor (const trinket of hero.trinkets ?? []) {\n\t\tconst onAfterSpawnedImpl = cardMappings[trinket.cardId];\n\t\tif (hasAfterOtherSpawned(onAfterSpawnedImpl)) {\n\t\t\tonAfterSpawnedImpl.afterOtherSpawned(trinket, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: hero,\n\t\t\t\tboard: board,\n\t\t\t\totherHero: otherHero,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\tgameState,\n\t\t\t\tapplySelfAuras: false,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tfor (const entity of initialBoard) {\n\t\tif (entity.entityId === spawned.entityId) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst onAfterSpawnedImpl = cardMappings[entity.cardId];\n\t\tif (hasAfterOtherSpawned(onAfterSpawnedImpl)) {\n\t\t\tonAfterSpawnedImpl.afterOtherSpawned(entity, {\n\t\t\t\tspawned: spawned,\n\t\t\t\thero: hero,\n\t\t\t\tboard: board,\n\t\t\t\totherHero: otherHero,\n\t\t\t\totherBoard: otherBoard,\n\t\t\t\tgameState,\n\t\t\t\tapplySelfAuras: false,\n\t\t\t\tapplyAttackAuras: true,\n\t\t\t\tapplyHealthAuras: true,\n\t\t\t});\n\t\t}\n\n\t\tswitch (entity.cardId) {\n\t\t\tcase CardIds.XyloBones_BG26_172:\n\t\t\tcase CardIds.XyloBones_BG26_172_G:\n\t\t\t\tif (entity.entityId !== spawned.entityId) {\n\t\t\t\t\tconst xylobonesBuff = entity.cardId === CardIds.XyloBones_BG26_172_G ? 4 : 2;\n\t\t\t\t\tmodifyStats(entity, entity, 0, xylobonesBuff, board, hero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\n\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\n\t\t\t\tif (entity.entityId !== spawned.entityId) {\n\t\t\t\t\tconst octoStats = entity.cardId === CardIds.OctosariWrapGod_BG26_804_G ? 4 : 2;\n\t\t\t\t\tentity.scriptDataNum1 = (entity.scriptDataNum1 ?? 0) + octoStats;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t// case CardIds.ObserverOfMyths_BG_TTN_078:\n\t\t\t// case CardIds.ObserverOfMyths_BG_TTN_078_G:\n\t\t\t// \tif (spawned.attack > entity.attack) {\n\t\t\t// \t\tconst observerBuff = entity.cardId === CardIds.ObserverOfMyths_BG_TTN_078_G ? 2 : 1;\n\t\t\t// \t\taddStatsToBoard(entity, board, hero, observerBuff, 0, gameState);\n\t\t\t// \t}\n\t\t\t// \tbreak;\n\t\t\tcase CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy:\n\t\t\tcase CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy_G:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, hero, Race.DRAGON, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tconst valithriaBuff =\n\t\t\t\t\t\tentity.cardId === CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy_G ? 3 : 2;\n\t\t\t\t\tmodifyStats(entity, entity, valithriaBuff, valithriaBuff, board, hero, gameState);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, spawned, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t// Putricide-only\n\t\t\tcase CardIds.ArmsDealer_BG26_RLK_824:\n\t\t\t\tif (\n\t\t\t\t\thasCorrectTribe(spawned, hero, Race.UNDEAD, gameState.anomalies, gameState.allCards) &&\n\t\t\t\t\tentity.entityId !== spawned.entityId\n\t\t\t\t) {\n\t\t\t\t\tmodifyStats(spawned, spawned, 1, 0, board, hero, gameState, false);\n\t\t\t\t\tgameState.spectator.registerPowerTarget(entity, entity, board, null, null);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n};\n\nexport interface OnSpawnInput {\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\nexport interface OnOtherSpawnInput {\n\tspawned: BoardEntity;\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\totherHero: BgsPlayerEntity;\n\totherBoard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n\tapplySelfAuras: boolean;\n}\nexport interface OnOtherSpawnAuraInput {\n\tspawned: BoardEntity;\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\nexport interface OnDespawnInput {\n\thero: BgsPlayerEntity;\n\tboard: BoardEntity[];\n\tgameState: FullGameState;\n\t// Slamma + Goldrinn interaction is:\n\t// - set the stats to (double_attack, health)\n\t// - re-apply only the \"attack\" portion of the aura\n\tapplyAttackAuras: boolean;\n\tapplyHealthAuras: boolean;\n}\n\n/** Trinket reaction when a minion is placed on the friendly board (`handleAddedMinionAuraEffect`, after hero power / quest hooks). */\nexport interface OnFriendlyMinionSummonedTrinketInput {\n\tspawned: BoardEntity;\n\tboard: BoardEntity[];\n\thero: BgsPlayerEntity;\n\totherBoard: BoardEntity[];\n\totherHero: BgsPlayerEntity;\n\tgameState: FullGameState;\n}\n"]}
@@ -62,7 +62,7 @@ const setMissingAura = (board, minionCardId, enchantmentCardId, attack, health,
62
62
  }
63
63
  };
64
64
  const setImplicitDataHero = (hero, cardsData, isPlayer, entityIdContainer) => {
65
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29;
65
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30;
66
66
  for (const heroPower of hero.heroPowers) {
67
67
  const avengeValue = cardsData.avengeValue(heroPower.cardId);
68
68
  if (avengeValue > 0) {
@@ -133,28 +133,29 @@ const setImplicitDataHero = (hero, cardsData, isPlayer, entityIdContainer) => {
133
133
  hero.globalInfo.AdditionalAttack = (_5 = hero.globalInfo.AdditionalAttack) !== null && _5 !== void 0 ? _5 : 0;
134
134
  hero.globalInfo.SpellsCastThisGame = (_6 = hero.globalInfo.SpellsCastThisGame) !== null && _6 !== void 0 ? _6 : 0;
135
135
  hero.globalInfo.UndeadAttackBonus = (_7 = hero.globalInfo.UndeadAttackBonus) !== null && _7 !== void 0 ? _7 : 0;
136
- hero.globalInfo.HauntedCarapaceAttackBonus = (_8 = hero.globalInfo.HauntedCarapaceAttackBonus) !== null && _8 !== void 0 ? _8 : 0;
137
- hero.globalInfo.HauntedCarapaceHealthBonus = (_9 = hero.globalInfo.HauntedCarapaceHealthBonus) !== null && _9 !== void 0 ? _9 : 0;
138
- hero.globalInfo.FrostlingBonus = (_10 = hero.globalInfo.FrostlingBonus) !== null && _10 !== void 0 ? _10 : 0;
136
+ hero.globalInfo.UndeadHealthBonus = (_8 = hero.globalInfo.UndeadHealthBonus) !== null && _8 !== void 0 ? _8 : 0;
137
+ hero.globalInfo.HauntedCarapaceAttackBonus = (_9 = hero.globalInfo.HauntedCarapaceAttackBonus) !== null && _9 !== void 0 ? _9 : 0;
138
+ hero.globalInfo.HauntedCarapaceHealthBonus = (_10 = hero.globalInfo.HauntedCarapaceHealthBonus) !== null && _10 !== void 0 ? _10 : 0;
139
+ hero.globalInfo.FrostlingBonus = (_11 = hero.globalInfo.FrostlingBonus) !== null && _11 !== void 0 ? _11 : 0;
139
140
  hero.globalInfo.BloodGemAttackBonus =
140
- ((_11 = hero.globalInfo.BloodGemAttackBonus) !== null && _11 !== void 0 ? _11 : 0) +
141
- ((_13 = (_12 = hero.questRewardEntities) === null || _12 === void 0 ? void 0 : _12.filter((e) => e.cardId === "BG27_Reward_815").length) !== null && _13 !== void 0 ? _13 : 0);
141
+ ((_12 = hero.globalInfo.BloodGemAttackBonus) !== null && _12 !== void 0 ? _12 : 0) +
142
+ ((_14 = (_13 = hero.questRewardEntities) === null || _13 === void 0 ? void 0 : _13.filter((e) => e.cardId === "BG27_Reward_815").length) !== null && _14 !== void 0 ? _14 : 0);
142
143
  hero.globalInfo.BloodGemHealthBonus =
143
- ((_14 = hero.globalInfo.BloodGemHealthBonus) !== null && _14 !== void 0 ? _14 : 0) +
144
- ((_16 = (_15 = hero.questRewardEntities) === null || _15 === void 0 ? void 0 : _15.filter((e) => e.cardId === "BG27_Reward_815").length) !== null && _16 !== void 0 ? _16 : 0);
145
- hero.globalInfo.GoldrinnBuffAtk = (_17 = hero.globalInfo.GoldrinnBuffAtk) !== null && _17 !== void 0 ? _17 : 0;
146
- hero.globalInfo.GoldrinnBuffHealth = (_18 = hero.globalInfo.GoldrinnBuffHealth) !== null && _18 !== void 0 ? _18 : 0;
147
- hero.globalInfo.WhelpAttackBuff = (_19 = hero.globalInfo.WhelpAttackBuff) !== null && _19 !== void 0 ? _19 : 0;
148
- hero.globalInfo.WhelpHealthBuff = (_20 = hero.globalInfo.WhelpHealthBuff) !== null && _20 !== void 0 ? _20 : 0;
149
- hero.globalInfo.GoldSpentThisGame = (_21 = hero.globalInfo.GoldSpentThisGame) !== null && _21 !== void 0 ? _21 : 0;
150
- hero.globalInfo.VolumizerAttackBuff = (_22 = hero.globalInfo.VolumizerAttackBuff) !== null && _22 !== void 0 ? _22 : 0;
151
- hero.globalInfo.VolumizerHealthBuff = (_23 = hero.globalInfo.VolumizerHealthBuff) !== null && _23 !== void 0 ? _23 : 0;
152
- hero.globalInfo.DeepBluesPlayed = (_24 = hero.globalInfo.DeepBluesPlayed) !== null && _24 !== void 0 ? _24 : 0;
153
- hero.globalInfo.DeathrattlesTriggeredThisGame = (_25 = hero.globalInfo.DeathrattlesTriggeredThisGame) !== null && _25 !== void 0 ? _25 : 0;
154
- hero.globalInfo.BackToBackCastThisGame = (_26 = hero.globalInfo.BackToBackCastThisGame) !== null && _26 !== void 0 ? _26 : 0;
155
- hero.globalInfo.TavernSpellsCastThisTurn = (_27 = hero.globalInfo.TavernSpellsCastThisTurn) !== null && _27 !== void 0 ? _27 : 0;
156
- hero.globalInfo.CardsPlayedThisTurn = (_28 = hero.globalInfo.CardsPlayedThisTurn) !== null && _28 !== void 0 ? _28 : 0;
157
- hero.globalInfo.MrrgltonsPlayedThisGame = (_29 = hero.globalInfo.MrrgltonsPlayedThisGame) !== null && _29 !== void 0 ? _29 : 0;
144
+ ((_15 = hero.globalInfo.BloodGemHealthBonus) !== null && _15 !== void 0 ? _15 : 0) +
145
+ ((_17 = (_16 = hero.questRewardEntities) === null || _16 === void 0 ? void 0 : _16.filter((e) => e.cardId === "BG27_Reward_815").length) !== null && _17 !== void 0 ? _17 : 0);
146
+ hero.globalInfo.GoldrinnBuffAtk = (_18 = hero.globalInfo.GoldrinnBuffAtk) !== null && _18 !== void 0 ? _18 : 0;
147
+ hero.globalInfo.GoldrinnBuffHealth = (_19 = hero.globalInfo.GoldrinnBuffHealth) !== null && _19 !== void 0 ? _19 : 0;
148
+ hero.globalInfo.WhelpAttackBuff = (_20 = hero.globalInfo.WhelpAttackBuff) !== null && _20 !== void 0 ? _20 : 0;
149
+ hero.globalInfo.WhelpHealthBuff = (_21 = hero.globalInfo.WhelpHealthBuff) !== null && _21 !== void 0 ? _21 : 0;
150
+ hero.globalInfo.GoldSpentThisGame = (_22 = hero.globalInfo.GoldSpentThisGame) !== null && _22 !== void 0 ? _22 : 0;
151
+ hero.globalInfo.VolumizerAttackBuff = (_23 = hero.globalInfo.VolumizerAttackBuff) !== null && _23 !== void 0 ? _23 : 0;
152
+ hero.globalInfo.VolumizerHealthBuff = (_24 = hero.globalInfo.VolumizerHealthBuff) !== null && _24 !== void 0 ? _24 : 0;
153
+ hero.globalInfo.DeepBluesPlayed = (_25 = hero.globalInfo.DeepBluesPlayed) !== null && _25 !== void 0 ? _25 : 0;
154
+ hero.globalInfo.DeathrattlesTriggeredThisGame = (_26 = hero.globalInfo.DeathrattlesTriggeredThisGame) !== null && _26 !== void 0 ? _26 : 0;
155
+ hero.globalInfo.BackToBackCastThisGame = (_27 = hero.globalInfo.BackToBackCastThisGame) !== null && _27 !== void 0 ? _27 : 0;
156
+ hero.globalInfo.TavernSpellsCastThisTurn = (_28 = hero.globalInfo.TavernSpellsCastThisTurn) !== null && _28 !== void 0 ? _28 : 0;
157
+ hero.globalInfo.CardsPlayedThisTurn = (_29 = hero.globalInfo.CardsPlayedThisTurn) !== null && _29 !== void 0 ? _29 : 0;
158
+ hero.globalInfo.MrrgltonsPlayedThisGame = (_30 = hero.globalInfo.MrrgltonsPlayedThisGame) !== null && _30 !== void 0 ? _30 : 0;
158
159
  };
159
160
  exports.setImplicitDataHero = setImplicitDataHero;
160
161
  const clearStealthIfNeeded = (board, hero, otherBoard, otherHero, gameState) => {
@@ -1 +1 @@
1
- {"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { AllCardsService, 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 { updateStealth } from '../keywords/stealth';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { addImpliedMechanics, hasCorrectTribe } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const setMissingAuras = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tanomalies: readonly string[],\r\n\tallCards: AllCardsService,\r\n): void => {\r\n\tsetMissingMinionsAura(board, boardHero, anomalies, allCards);\r\n\tsetMissingHeroPowerAura(board, boardHero);\r\n\tsetMissingTrinketAura(board, boardHero);\r\n};\r\n\r\nexport const setMissingTrinketAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const trinket of boardHero.trinkets ?? []) {\r\n\t\t// switch (trinket.cardId) {\r\n\t\t// \tcase CardIds.WindrunnerNecklace_BG30_MagicItem_997:\r\n\t\t// \tcase CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t:\r\n\t\t// \t\tconst enchantment =\r\n\t\t// \t\t\ttrinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t// \t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t// \t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2;\r\n\t\t// \t\tconst buff = trinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 20;\r\n\t\t// \t\tconst target = board[0];\r\n\t\t// \t\tif (!!target && !target.enchantments?.find((e) => e.cardId === enchantment)) {\r\n\t\t// \t\t\ttarget.attack += buff;\r\n\t\t// \t\t\ttarget.enchantments.push({\r\n\t\t// \t\t\t\tcardId: enchantment,\r\n\t\t// \t\t\t\toriginEntityId: trinket.entityId,\r\n\t\t// \t\t\t\ttiming: 0,\r\n\t\t// \t\t\t});\r\n\t\t// \t\t}\r\n\t\t// \t\tbreak;\r\n\t\t// }\r\n\t}\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const heroPower of boardHero.heroPowers) {\r\n\t\tif (heroPower.cardId === CardIds.TheSmokingGun) {\r\n\t\t\tboard\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!e.enchantments.find(\r\n\t\t\t\t\t\t\t(ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\te.attack += 4;\r\n\t\t\t\t});\r\n\t\t}\r\n\t\tif (heroPower.cardId === CardIds.VolatileVenom) {\r\n\t\t\tboard\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment),\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\te.attack += 7;\r\n\t\t\t\t\te.health += 7;\r\n\t\t\t\t\te.enchantments.push({\r\n\t\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\t\ttiming: 0,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tanomalies: readonly string[],\r\n\tallCards: AllCardsService,\r\n): void => {\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, anomalies, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_BG_NEW1_027,\r\n\t\tCardIds.SouthseaCaptain_YarrrVanillaEnchantment,\r\n\t\t1,\r\n\t\t1,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, anomalies, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_TB_BaconUps_136,\r\n\t\tCardIds.SouthseaCaptain_YarrrEnchantment,\r\n\t\t2,\r\n\t\t2,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, anomalies, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglLegacyEnchantment,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, anomalies, allCards)),\r\n\t// \tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t// \tCardIds.MurlocWarleader_MrgglaarglEnchantment,\r\n\t// \t4,\r\n\t// \t0,\r\n\t// );\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, anomalies, allCards)),\r\n\t// \tCardIds.Kathranatir_BG21_039,\r\n\t// \tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e,\r\n\t// \t2,\r\n\t// \t0,\r\n\t// );\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, anomalies, allCards)),\r\n\t// \tCardIds.Kathranatir_BG21_039_G,\r\n\t// \tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge,\r\n\t// \t4,\r\n\t// \t0,\r\n\t// );\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043e,\r\n\t\t6,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => e.divineShield),\r\n\t// \tCardIds.CyborgDrake_BG25_043_G,\r\n\t// \tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043_Ge,\r\n\t// \t12,\r\n\t// \t0,\r\n\t// \tfalse,\r\n\t// );\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, anomalies, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\tboardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, anomalies, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030_G,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\t2 * boardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n};\r\n\r\nconst setMissingAura = (\r\n\tboard: BoardEntity[],\r\n\tminionCardId: string,\r\n\tenchantmentCardId: string,\r\n\tattack: number,\r\n\thealth: number,\r\n\tignoreSelf = true,\r\n\tallCards: AllCardsService = null,\r\n): void => {\r\n\tconst buffers = board.filter((e) => e.cardId === minionCardId);\r\n\tfor (const buffer of buffers) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += attack;\r\n\t\t\t\te.health += health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (\r\n\thero: BgsPlayerEntity,\r\n\tcardsData: CardsData,\r\n\tisPlayer: boolean,\r\n\tentityIdContainer: { entityId: number },\r\n): void => {\r\n\tfor (const heroPower of hero.heroPowers) {\r\n\t\tconst avengeValue = cardsData.avengeValue(heroPower.cardId);\r\n\t\tif (avengeValue > 0) {\r\n\t\t\theroPower.avengeCurrent = avengeValue - (heroPower.scoreValue2 ?? 0);\r\n\t\t\theroPower.avengeDefault = avengeValue;\r\n\t\t}\r\n\t\tif ((heroPower.info as BoardEntity)?.health) {\r\n\t\t\taddImpliedMechanics(heroPower.info as BoardEntity, cardsData);\r\n\t\t}\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\t// For now deactivating this, until I have a scenario where this matters. It feels like\r\n\t// this should be a display issue only, as quest rewards are also handled in the code\r\n\tconst heroPowerAsReward = null; // hero.cardId === CardIds.SireDenathrius_BG24_HERO_100 ? hero.heroPowers[0]?.cardId : null;\r\n\thero.questRewards = [...(hero.questRewards ?? []), heroPowerAsReward].filter((e) => !!e);\r\n\thero.questRewardEntities = hero.questRewardEntities\r\n\t\t? hero.questRewardEntities.map((reward: any) => ({\r\n\t\t\t\tcardId: reward.CardId,\r\n\t\t\t\tscriptDataNum1: reward.ScriptDataNum1 ?? 0,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward.CardId),\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward.CardId),\r\n\t\t }))\r\n\t\t: hero.questRewards.map((reward) => ({\r\n\t\t\t\tcardId: reward,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward),\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward),\r\n\t\t\t\tscriptDataNum1: cardsData.defaultScriptDataNum(reward),\r\n\t\t }));\r\n\thero.trinkets = (hero.trinkets ?? []).map((trinket) => ({\r\n\t\t...trinket,\r\n\t\tavengeDefault: cardsData.avengeValue(trinket.cardId),\r\n\t\tavengeCurrent: cardsData.avengeValue(trinket.cardId),\r\n\t\t// Use scriptDataNum1 to keep the info from the input\r\n\t\tscriptDataNum1: trinket.scriptDataNum1 || cardsData.defaultScriptDataNum(trinket.cardId),\r\n\t}));\r\n\t// 0 is not a valid entityId\r\n\thero.entityId = hero.entityId || entityIdContainer.entityId--;\r\n\thero.hand = hero.hand ?? [];\r\n\thero.enchantments = hero.enchantments ?? [];\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {};\r\n\t}\r\n\r\n\thero.globalInfo.EternalKnightsDeadThisGame = hero.globalInfo.EternalKnightsDeadThisGame ?? 0;\r\n\thero.globalInfo.SanlaynScribesDeadThisGame = hero.globalInfo.SanlaynScribesDeadThisGame ?? 0;\r\n\thero.globalInfo.BeastsSummonedThisGame = hero.globalInfo.BeastsSummonedThisGame ?? 0;\r\n\thero.globalInfo.BeastsSummonedThisCombat = hero.globalInfo.BeastsSummonedThisCombat ?? 0;\r\n\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame ?? 0;\r\n\thero.globalInfo.PiratesSummonedThisGame = hero.globalInfo.PiratesSummonedThisGame ?? 0;\r\n\thero.globalInfo.BattlecriesTriggeredThisGame = hero.globalInfo.BattlecriesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.DeathrattlesTriggeredThisGame = hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.BeetleAttackBuff = hero.globalInfo.BeetleAttackBuff ?? 0;\r\n\thero.globalInfo.BeetleHealthBuff = hero.globalInfo.BeetleHealthBuff ?? 0;\r\n\thero.globalInfo.ElementalAttackBuff = hero.globalInfo.ElementalAttackBuff ?? 0;\r\n\thero.globalInfo.ElementalHealthBuff = hero.globalInfo.ElementalHealthBuff ?? 0;\r\n\thero.globalInfo.PirateAttackBuff = hero.globalInfo.PirateAttackBuff ?? 0;\r\n\thero.globalInfo.PirateHealthBuff = hero.globalInfo.PirateHealthBuff ?? 0;\r\n\thero.globalInfo.TavernSpellAttackBuff = hero.globalInfo.TavernSpellAttackBuff ?? 0;\r\n\thero.globalInfo.TavernSpellHealthBuff = hero.globalInfo.TavernSpellHealthBuff ?? 0;\r\n\thero.globalInfo.MutatedLasherAttackBuff = hero.globalInfo.MutatedLasherAttackBuff ?? 0;\r\n\thero.globalInfo.MutatedLasherHealthBuff = hero.globalInfo.MutatedLasherHealthBuff ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisGame = hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisTurn = hero.globalInfo.TavernSpellsCastThisTurn ?? 0;\r\n\thero.globalInfo.CardsPlayedThisTurn = hero.globalInfo.CardsPlayedThisTurn ?? 0;\r\n\thero.globalInfo.MrrgltonsPlayedThisGame = hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\thero.globalInfo.AdditionalAttack = hero.globalInfo.AdditionalAttack ?? 0;\r\n\thero.globalInfo.SpellsCastThisGame = hero.globalInfo.SpellsCastThisGame ?? 0;\r\n\thero.globalInfo.UndeadAttackBonus = hero.globalInfo.UndeadAttackBonus ?? 0;\r\n\thero.globalInfo.HauntedCarapaceAttackBonus = hero.globalInfo.HauntedCarapaceAttackBonus ?? 0;\r\n\thero.globalInfo.HauntedCarapaceHealthBonus = hero.globalInfo.HauntedCarapaceHealthBonus ?? 0;\r\n\thero.globalInfo.FrostlingBonus = hero.globalInfo.FrostlingBonus ?? 0;\r\n\thero.globalInfo.BloodGemAttackBonus =\r\n\t\t(hero.globalInfo.BloodGemAttackBonus ?? 0) +\r\n\t\t// Not sure why, but this isn't reflected in the player enchant\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t(hero.globalInfo.BloodGemHealthBonus ?? 0) +\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.GoldrinnBuffAtk = hero.globalInfo.GoldrinnBuffAtk ?? 0;\r\n\thero.globalInfo.GoldrinnBuffHealth = hero.globalInfo.GoldrinnBuffHealth ?? 0;\r\n\thero.globalInfo.WhelpAttackBuff = hero.globalInfo.WhelpAttackBuff ?? 0;\r\n\thero.globalInfo.WhelpHealthBuff = hero.globalInfo.WhelpHealthBuff ?? 0;\r\n\thero.globalInfo.GoldSpentThisGame = hero.globalInfo.GoldSpentThisGame ?? 0;\r\n\thero.globalInfo.VolumizerAttackBuff = hero.globalInfo.VolumizerAttackBuff ?? 0;\r\n\thero.globalInfo.VolumizerHealthBuff = hero.globalInfo.VolumizerHealthBuff ?? 0;\r\n\thero.globalInfo.DeepBluesPlayed = hero.globalInfo.DeepBluesPlayed ?? 0;\r\n\thero.globalInfo.DeathrattlesTriggeredThisGame = hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.BackToBackCastThisGame = hero.globalInfo.BackToBackCastThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisTurn = hero.globalInfo.TavernSpellsCastThisTurn ?? 0;\r\n\thero.globalInfo.CardsPlayedThisTurn = hero.globalInfo.CardsPlayedThisTurn ?? 0;\r\n\thero.globalInfo.MrrgltonsPlayedThisGame = hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n};\r\n\r\nexport const clearStealthIfNeeded = (\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => updateStealth(e, false, board, hero, otherHero, gameState));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => updateStealth(e, false, otherBoard, otherHero, hero, gameState));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => updateStealth(e, false, board, hero, otherHero, gameState));\r\n\t\totherBoard.forEach((e) => updateStealth(e, false, otherBoard, otherHero, hero, gameState));\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"auras.js","sourceRoot":"","sources":["../../src/simulation/auras.ts"],"names":[],"mappings":";;;AACA,iEAAqE;AAIrE,iDAAoD;AAEpD,oCAAgE;AAGzD,MAAM,eAAe,GAAG,CAC9B,KAAoB,EACpB,SAA0B,EAC1B,SAA4B,EAC5B,QAAyB,EAClB,EAAE;IACT,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAA,+BAAuB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1C,IAAA,6BAAqB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEK,MAAM,qBAAqB,GAAG,CAAC,KAAoB,EAAE,SAA0B,EAAQ,EAAE;;IAC/F,KAAK,MAAM,OAAO,IAAI,MAAA,SAAS,CAAC,QAAQ,mCAAI,EAAE,EAAE;KAoB/C;AACF,CAAC,CAAC;AAtBW,QAAA,qBAAqB,yBAsBhC;AAEK,MAAM,uBAAuB,GAAG,CAAC,KAAoB,EAAE,SAA0B,EAAQ,EAAE;IACjG,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;QAC7C,IAAI,SAAS,CAAC,MAAM,sBAA0B,EAAE;YAC/C,KAAK;iBACH,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CACnB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,uBAA0D,CAC/E,CACF;iBACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,SAAS,CAAC,MAAM,sBAA0B,EAAE;YAC/C,KAAK;iBACH,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,uBAA8C,CAAC,CAChG;iBACA,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACd,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACd,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACd,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;oBACnB,MAAM,oBAA2C;oBACjD,cAAc,EAAE,SAAS;oBACzB,MAAM,EAAE,CAAC;iBACT,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;KACD;AACF,CAAC,CAAC;AA9BW,QAAA,uBAAuB,2BA8BlC;AAEF,MAAM,qBAAqB,GAAG,CAC7B,KAAoB,EACpB,SAA0B,EAC1B,SAA4B,EAC5B,QAAyB,EAClB,EAAE;IACT,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,SAAS,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,kCAGpF,CAAC,EACD,CAAC,CACD,CAAC;IACF,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,SAAS,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,yCAGpF,CAAC,EACD,CAAC,CACD,CAAC;IACF,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,SAAS,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,4BAGpF,CAAC,EACD,CAAC,CACD,CAAC;IAsBF,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,2BAGnC,CAAC,EACD,CAAC,EACD,KAAK,CACL,CAAC;IASF,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,SAAS,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,2BAGpF,SAAS,CAAC,UAAU,EACpB,CAAC,CACD,CAAC;IACF,cAAc,CACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,SAAS,EAAE,qBAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,6BAGpF,CAAC,GAAG,SAAS,CAAC,UAAU,EACxB,CAAC,CACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACtB,KAAoB,EACpB,YAAoB,EACpB,iBAAyB,EACzB,MAAc,EACd,MAAc,EACd,UAAU,GAAG,IAAI,EACjB,WAA4B,IAAI,EACzB,EAAE;IACT,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC;IAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,KAAK;aACH,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC;aAChF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;YACnB,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC;KACJ;AACF,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAClC,IAAqB,EACrB,SAAoB,EACpB,QAAiB,EACjB,iBAAuC,EAChC,EAAE;;IACT,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;QACxC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,WAAW,GAAG,CAAC,EAAE;YACpB,SAAS,CAAC,aAAa,GAAG,WAAW,GAAG,CAAC,MAAA,SAAS,CAAC,WAAW,mCAAI,CAAC,CAAC,CAAC;YACrE,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC;SACtC;QACD,IAAI,MAAC,SAAS,CAAC,IAAoB,0CAAE,MAAM,EAAE;YAC5C,IAAA,2BAAmB,EAAC,SAAS,CAAC,IAAmB,EAAE,SAAS,CAAC,CAAC;SAC9D;KACD;IAED,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,CAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACrE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;KAC/C;IAKD,MAAM,iBAAiB,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,MAAA,IAAI,CAAC,YAAY,mCAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB;QAClD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;;YAAC,OAAA,CAAC;gBAC/C,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,cAAc,EAAE,MAAA,MAAM,CAAC,cAAc,mCAAI,CAAC;gBAC1C,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;gBACtC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnD,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;aAClD,CAAC,CAAA;SAAA,CAAC;QACL,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YACtC,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5C,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;YAC5C,cAAc,EAAE,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC;SACrD,CAAC,CAAC,CAAC;IACP,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,OAAO;QACV,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACpD,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QAEpD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;KACxF,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC9D,IAAI,CAAC,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,mCAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QACrB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACrB;IAED,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,0BAA0B,mCAAI,CAAC,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,0BAA0B,mCAAI,CAAC,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,mCAAI,CAAC,CAAC;IACrF,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,mCAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,4BAA4B,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,4BAA4B,mCAAI,CAAC,CAAC;IACjG,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,6BAA6B,mCAAI,CAAC,CAAC;IACnG,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,mCAAI,CAAC,CAAC;IACnF,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,qBAAqB,mCAAI,CAAC,CAAC;IACnF,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,mCAAI,CAAC,CAAC;IACvF,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,mCAAI,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,mCAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,mCAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,MAAA,IAAI,CAAC,UAAU,CAAC,0BAA0B,mCAAI,CAAC,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,0BAA0B,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,0BAA0B,qCAAI,CAAC,CAAC;IAC7F,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,cAAc,qCAAI,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,CAAC,mBAAmB;QAClC,CAAC,OAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,qCAAI,CAAC,CAAC;YAE1C,CAAC,OAAA,OAAA,IAAI,CAAC,mBAAmB,4CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,sBAA6B,EAAE,MAAM,qCAAI,CAAC,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU,CAAC,mBAAmB;QAClC,CAAC,OAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,qCAAI,CAAC,CAAC;YAC1C,CAAC,OAAA,OAAA,IAAI,CAAC,mBAAmB,4CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,sBAA6B,EAAE,MAAM,qCAAI,CAAC,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,eAAe,qCAAI,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,qCAAI,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,eAAe,qCAAI,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,eAAe,qCAAI,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,iBAAiB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,iBAAiB,qCAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,qCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,qCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,eAAe,qCAAI,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,6BAA6B,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,6BAA6B,qCAAI,CAAC,CAAC;IACnG,IAAI,CAAC,UAAU,CAAC,sBAAsB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,qCAAI,CAAC,CAAC;IACrF,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,qCAAI,CAAC,CAAC;IACzF,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,mBAAmB,qCAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,UAAU,CAAC,uBAAuB,GAAG,OAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,qCAAI,CAAC,CAAC;AACxF,CAAC,CAAC;AAzGW,QAAA,mBAAmB,uBAyG9B;AAEK,MAAM,oBAAoB,GAAG,CACnC,KAAoB,EACpB,IAAqB,EACrB,UAAyB,EACzB,SAA0B,EAC1B,SAAwB,EACjB,EAAE;IAET,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC9D,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;KACjF;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACnE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;KAC3F;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACjF,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;KAC3F;AACF,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B","sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { AllCardsService, 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 { updateStealth } from '../keywords/stealth';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { addImpliedMechanics, hasCorrectTribe } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const setMissingAuras = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tanomalies: readonly string[],\r\n\tallCards: AllCardsService,\r\n): void => {\r\n\tsetMissingMinionsAura(board, boardHero, anomalies, allCards);\r\n\tsetMissingHeroPowerAura(board, boardHero);\r\n\tsetMissingTrinketAura(board, boardHero);\r\n};\r\n\r\nexport const setMissingTrinketAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const trinket of boardHero.trinkets ?? []) {\r\n\t\t// switch (trinket.cardId) {\r\n\t\t// \tcase CardIds.WindrunnerNecklace_BG30_MagicItem_997:\r\n\t\t// \tcase CardIds.WindrunnerNecklace_WindrunnerNecklaceToken_BG30_MagicItem_997t:\r\n\t\t// \t\tconst enchantment =\r\n\t\t// \t\t\ttrinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997\r\n\t\t// \t\t\t\t? CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e\r\n\t\t// \t\t\t\t: CardIds.WindrunnerNecklace_RunningLikeTheWindEnchantment_BG30_MagicItem_997e2;\r\n\t\t// \t\tconst buff = trinket.cardId === CardIds.WindrunnerNecklace_BG30_MagicItem_997 ? 8 : 20;\r\n\t\t// \t\tconst target = board[0];\r\n\t\t// \t\tif (!!target && !target.enchantments?.find((e) => e.cardId === enchantment)) {\r\n\t\t// \t\t\ttarget.attack += buff;\r\n\t\t// \t\t\ttarget.enchantments.push({\r\n\t\t// \t\t\t\tcardId: enchantment,\r\n\t\t// \t\t\t\toriginEntityId: trinket.entityId,\r\n\t\t// \t\t\t\ttiming: 0,\r\n\t\t// \t\t\t});\r\n\t\t// \t\t}\r\n\t\t// \t\tbreak;\r\n\t\t// }\r\n\t}\r\n};\r\n\r\nexport const setMissingHeroPowerAura = (board: BoardEntity[], boardHero: BgsPlayerEntity): void => {\r\n\tfor (const heroPower of boardHero.heroPowers) {\r\n\t\tif (heroPower.cardId === CardIds.TheSmokingGun) {\r\n\t\t\tboard\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) =>\r\n\t\t\t\t\t\t!e.enchantments.find(\r\n\t\t\t\t\t\t\t(ench) => ench.cardId === CardIds.TheSmokingGun_ArmedAndStillSmokingEnchantment,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\te.attack += 4;\r\n\t\t\t\t});\r\n\t\t}\r\n\t\tif (heroPower.cardId === CardIds.VolatileVenom) {\r\n\t\t\tboard\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(e) => !e.enchantments.find((ench) => ench.cardId === CardIds.VolatileVenom_VolatileEnchantment),\r\n\t\t\t\t)\r\n\t\t\t\t.forEach((e) => {\r\n\t\t\t\t\te.attack += 7;\r\n\t\t\t\t\te.health += 7;\r\n\t\t\t\t\te.enchantments.push({\r\n\t\t\t\t\t\tcardId: CardIds.VolatileVenom_VolatileEnchantment,\r\n\t\t\t\t\t\toriginEntityId: undefined,\r\n\t\t\t\t\t\ttiming: 0,\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n};\r\n\r\nconst setMissingMinionsAura = (\r\n\tboard: BoardEntity[],\r\n\tboardHero: BgsPlayerEntity,\r\n\tanomalies: readonly string[],\r\n\tallCards: AllCardsService,\r\n): void => {\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, anomalies, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_BG_NEW1_027,\r\n\t\tCardIds.SouthseaCaptain_YarrrVanillaEnchantment,\r\n\t\t1,\r\n\t\t1,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.PIRATE, anomalies, allCards)),\r\n\t\tCardIds.SouthseaCaptainLegacy_TB_BaconUps_136,\r\n\t\tCardIds.SouthseaCaptain_YarrrEnchantment,\r\n\t\t2,\r\n\t\t2,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, anomalies, allCards)),\r\n\t\tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t\tCardIds.MurlocWarleader_MrgglaarglLegacyEnchantment,\r\n\t\t2,\r\n\t\t0,\r\n\t);\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.MURLOC, anomalies, allCards)),\r\n\t// \tCardIds.MurlocWarleaderLegacy_BG_EX1_507,\r\n\t// \tCardIds.MurlocWarleader_MrgglaarglEnchantment,\r\n\t// \t4,\r\n\t// \t0,\r\n\t// );\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, anomalies, allCards)),\r\n\t// \tCardIds.Kathranatir_BG21_039,\r\n\t// \tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039e,\r\n\t// \t2,\r\n\t// \t0,\r\n\t// );\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.DEMON, anomalies, allCards)),\r\n\t// \tCardIds.Kathranatir_BG21_039_G,\r\n\t// \tCardIds.Kathranatir_GraspOfKathranatirEnchantment_BG21_039_Ge,\r\n\t// \t4,\r\n\t// \t0,\r\n\t// );\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => e.divineShield),\r\n\t\tCardIds.CyborgDrake_BG25_043,\r\n\t\tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043e,\r\n\t\t6,\r\n\t\t0,\r\n\t\tfalse,\r\n\t);\r\n\t// setMissingAura(\r\n\t// \tboard.filter((e) => e.divineShield),\r\n\t// \tCardIds.CyborgDrake_BG25_043_G,\r\n\t// \tCardIds.CyborgDrake_CyborgEnhancementEnchantment_BG25_043_Ge,\r\n\t// \t12,\r\n\t// \t0,\r\n\t// \tfalse,\r\n\t// );\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, anomalies, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\tboardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n\tsetMissingAura(\r\n\t\tboard.filter((e) => hasCorrectTribe(e, boardHero, Race.UNDEAD, anomalies, allCards)),\r\n\t\tCardIds.SoreLoser_BG27_030_G,\r\n\t\tCardIds.SoreLoser_NoImWinningEnchantment_BG27_030e,\r\n\t\t2 * boardHero.tavernTier,\r\n\t\t0,\r\n\t);\r\n};\r\n\r\nconst setMissingAura = (\r\n\tboard: BoardEntity[],\r\n\tminionCardId: string,\r\n\tenchantmentCardId: string,\r\n\tattack: number,\r\n\thealth: number,\r\n\tignoreSelf = true,\r\n\tallCards: AllCardsService = null,\r\n): void => {\r\n\tconst buffers = board.filter((e) => e.cardId === minionCardId);\r\n\tfor (const buffer of buffers) {\r\n\t\tboard\r\n\t\t\t.filter((e) => !e.enchantments.find((ench) => ench.cardId === enchantmentCardId))\r\n\t\t\t.filter((e) => (ignoreSelf ? e.entityId !== buffer.entityId : true))\r\n\t\t\t.forEach((e) => {\r\n\t\t\t\te.attack += attack;\r\n\t\t\t\te.health += health;\r\n\t\t\t});\r\n\t}\r\n};\r\n\r\nexport const setImplicitDataHero = (\r\n\thero: BgsPlayerEntity,\r\n\tcardsData: CardsData,\r\n\tisPlayer: boolean,\r\n\tentityIdContainer: { entityId: number },\r\n): void => {\r\n\tfor (const heroPower of hero.heroPowers) {\r\n\t\tconst avengeValue = cardsData.avengeValue(heroPower.cardId);\r\n\t\tif (avengeValue > 0) {\r\n\t\t\theroPower.avengeCurrent = avengeValue - (heroPower.scoreValue2 ?? 0);\r\n\t\t\theroPower.avengeDefault = avengeValue;\r\n\t\t}\r\n\t\tif ((heroPower.info as BoardEntity)?.health) {\r\n\t\t\taddImpliedMechanics(heroPower.info as BoardEntity, cardsData);\r\n\t\t}\r\n\t}\r\n\t// Backward compatibility\r\n\tif (!!hero.questRewards?.length && !Array.isArray(hero.questRewards)) {\r\n\t\thero.questRewards = [hero.questRewards as any];\r\n\t}\r\n\r\n\t// Because Denathrius can send a quest reward as its hero power (I think)\r\n\t// For now deactivating this, until I have a scenario where this matters. It feels like\r\n\t// this should be a display issue only, as quest rewards are also handled in the code\r\n\tconst heroPowerAsReward = null; // hero.cardId === CardIds.SireDenathrius_BG24_HERO_100 ? hero.heroPowers[0]?.cardId : null;\r\n\thero.questRewards = [...(hero.questRewards ?? []), heroPowerAsReward].filter((e) => !!e);\r\n\thero.questRewardEntities = hero.questRewardEntities\r\n\t\t? hero.questRewardEntities.map((reward: any) => ({\r\n\t\t\t\tcardId: reward.CardId,\r\n\t\t\t\tscriptDataNum1: reward.ScriptDataNum1 ?? 0,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward.CardId),\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward.CardId),\r\n\t\t }))\r\n\t\t: hero.questRewards.map((reward) => ({\r\n\t\t\t\tcardId: reward,\r\n\t\t\t\tentityId: entityIdContainer.entityId--,\r\n\t\t\t\tavengeCurrent: cardsData.avengeValue(reward),\r\n\t\t\t\tavengeDefault: cardsData.avengeValue(reward),\r\n\t\t\t\tscriptDataNum1: cardsData.defaultScriptDataNum(reward),\r\n\t\t }));\r\n\thero.trinkets = (hero.trinkets ?? []).map((trinket) => ({\r\n\t\t...trinket,\r\n\t\tavengeDefault: cardsData.avengeValue(trinket.cardId),\r\n\t\tavengeCurrent: cardsData.avengeValue(trinket.cardId),\r\n\t\t// Use scriptDataNum1 to keep the info from the input\r\n\t\tscriptDataNum1: trinket.scriptDataNum1 || cardsData.defaultScriptDataNum(trinket.cardId),\r\n\t}));\r\n\t// 0 is not a valid entityId\r\n\thero.entityId = hero.entityId || entityIdContainer.entityId--;\r\n\thero.hand = hero.hand ?? [];\r\n\thero.enchantments = hero.enchantments ?? [];\r\n\tif (!hero.globalInfo) {\r\n\t\thero.globalInfo = {};\r\n\t}\r\n\r\n\thero.globalInfo.EternalKnightsDeadThisGame = hero.globalInfo.EternalKnightsDeadThisGame ?? 0;\r\n\thero.globalInfo.SanlaynScribesDeadThisGame = hero.globalInfo.SanlaynScribesDeadThisGame ?? 0;\r\n\thero.globalInfo.BeastsSummonedThisGame = hero.globalInfo.BeastsSummonedThisGame ?? 0;\r\n\thero.globalInfo.BeastsSummonedThisCombat = hero.globalInfo.BeastsSummonedThisCombat ?? 0;\r\n\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame ?? 0;\r\n\thero.globalInfo.PiratesSummonedThisGame = hero.globalInfo.PiratesSummonedThisGame ?? 0;\r\n\thero.globalInfo.BattlecriesTriggeredThisGame = hero.globalInfo.BattlecriesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.DeathrattlesTriggeredThisGame = hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.BeetleAttackBuff = hero.globalInfo.BeetleAttackBuff ?? 0;\r\n\thero.globalInfo.BeetleHealthBuff = hero.globalInfo.BeetleHealthBuff ?? 0;\r\n\thero.globalInfo.ElementalAttackBuff = hero.globalInfo.ElementalAttackBuff ?? 0;\r\n\thero.globalInfo.ElementalHealthBuff = hero.globalInfo.ElementalHealthBuff ?? 0;\r\n\thero.globalInfo.PirateAttackBuff = hero.globalInfo.PirateAttackBuff ?? 0;\r\n\thero.globalInfo.PirateHealthBuff = hero.globalInfo.PirateHealthBuff ?? 0;\r\n\thero.globalInfo.TavernSpellAttackBuff = hero.globalInfo.TavernSpellAttackBuff ?? 0;\r\n\thero.globalInfo.TavernSpellHealthBuff = hero.globalInfo.TavernSpellHealthBuff ?? 0;\r\n\thero.globalInfo.MutatedLasherAttackBuff = hero.globalInfo.MutatedLasherAttackBuff ?? 0;\r\n\thero.globalInfo.MutatedLasherHealthBuff = hero.globalInfo.MutatedLasherHealthBuff ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisGame = hero.globalInfo.TavernSpellsCastThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisTurn = hero.globalInfo.TavernSpellsCastThisTurn ?? 0;\r\n\thero.globalInfo.CardsPlayedThisTurn = hero.globalInfo.CardsPlayedThisTurn ?? 0;\r\n\thero.globalInfo.MrrgltonsPlayedThisGame = hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n\thero.globalInfo.AdditionalAttack = hero.globalInfo.AdditionalAttack ?? 0;\r\n\thero.globalInfo.SpellsCastThisGame = hero.globalInfo.SpellsCastThisGame ?? 0;\r\n\thero.globalInfo.UndeadAttackBonus = hero.globalInfo.UndeadAttackBonus ?? 0;\r\n\thero.globalInfo.UndeadHealthBonus = hero.globalInfo.UndeadHealthBonus ?? 0;\r\n\thero.globalInfo.HauntedCarapaceAttackBonus = hero.globalInfo.HauntedCarapaceAttackBonus ?? 0;\r\n\thero.globalInfo.HauntedCarapaceHealthBonus = hero.globalInfo.HauntedCarapaceHealthBonus ?? 0;\r\n\thero.globalInfo.FrostlingBonus = hero.globalInfo.FrostlingBonus ?? 0;\r\n\thero.globalInfo.BloodGemAttackBonus =\r\n\t\t(hero.globalInfo.BloodGemAttackBonus ?? 0) +\r\n\t\t// Not sure why, but this isn't reflected in the player enchant\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.BloodGemHealthBonus =\r\n\t\t(hero.globalInfo.BloodGemHealthBonus ?? 0) +\r\n\t\t(hero.questRewardEntities?.filter((e) => e.cardId === CardIds.EndlessBloodMoon).length ?? 0);\r\n\thero.globalInfo.GoldrinnBuffAtk = hero.globalInfo.GoldrinnBuffAtk ?? 0;\r\n\thero.globalInfo.GoldrinnBuffHealth = hero.globalInfo.GoldrinnBuffHealth ?? 0;\r\n\thero.globalInfo.WhelpAttackBuff = hero.globalInfo.WhelpAttackBuff ?? 0;\r\n\thero.globalInfo.WhelpHealthBuff = hero.globalInfo.WhelpHealthBuff ?? 0;\r\n\thero.globalInfo.GoldSpentThisGame = hero.globalInfo.GoldSpentThisGame ?? 0;\r\n\thero.globalInfo.VolumizerAttackBuff = hero.globalInfo.VolumizerAttackBuff ?? 0;\r\n\thero.globalInfo.VolumizerHealthBuff = hero.globalInfo.VolumizerHealthBuff ?? 0;\r\n\thero.globalInfo.DeepBluesPlayed = hero.globalInfo.DeepBluesPlayed ?? 0;\r\n\thero.globalInfo.DeathrattlesTriggeredThisGame = hero.globalInfo.DeathrattlesTriggeredThisGame ?? 0;\r\n\thero.globalInfo.BackToBackCastThisGame = hero.globalInfo.BackToBackCastThisGame ?? 0;\r\n\thero.globalInfo.TavernSpellsCastThisTurn = hero.globalInfo.TavernSpellsCastThisTurn ?? 0;\r\n\thero.globalInfo.CardsPlayedThisTurn = hero.globalInfo.CardsPlayedThisTurn ?? 0;\r\n\thero.globalInfo.MrrgltonsPlayedThisGame = hero.globalInfo.MrrgltonsPlayedThisGame ?? 0;\r\n};\r\n\r\nexport const clearStealthIfNeeded = (\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): void => {\r\n\t// https://twitter.com/DCalkosz/status/1562194944688660481?s=20&t=100I8IVZmBKgYQWkdK8nIA\r\n\tif (board.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\tboard.forEach((e) => updateStealth(e, false, board, hero, otherHero, gameState));\r\n\t}\r\n\tif (otherBoard.every((entity) => entity.stealth && !entity.attack)) {\r\n\t\totherBoard.forEach((e) => updateStealth(e, false, otherBoard, otherHero, hero, gameState));\r\n\t}\r\n\tif (board.every((e) => e.stealth) && otherBoard.every((e) => e.stealth)) {\r\n\t\tboard.forEach((e) => updateStealth(e, false, board, hero, otherHero, gameState));\r\n\t\totherBoard.forEach((e) => updateStealth(e, false, otherBoard, otherHero, hero, gameState));\r\n\t}\r\n};\r\n"]}
@@ -14,12 +14,13 @@ const playBloodGemsOn = (source, target, quantity, board, hero, otherBoard, othe
14
14
  }
15
15
  const bloodGemBaseAttack = 1 +
16
16
  ((_b = (_a = hero.globalInfo) === null || _a === void 0 ? void 0 : _a.BloodGemAttackBonus) !== null && _b !== void 0 ? _b : 0) +
17
- hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_988").length * 4 +
17
+ hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_988").length * 2 +
18
18
  hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_988t")
19
19
  .length *
20
20
  3;
21
21
  const bloodGemBaseHealth = 1 +
22
22
  ((_d = (_c = hero.globalInfo) === null || _c === void 0 ? void 0 : _c.BloodGemHealthBonus) !== null && _d !== void 0 ? _d : 0) +
23
+ hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_988").length * 1 +
23
24
  hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_988t")
24
25
  .length *
25
26
  3;