@firestone-hs/reference-data 1.0.106 → 1.0.107

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.
@@ -29,7 +29,6 @@ export interface ReferenceCard {
29
29
  readonly referencedTags?: string[];
30
30
  readonly tags?: string[];
31
31
  readonly rarity?: RarityTYpe;
32
- readonly hasEliteFrame?: boolean;
33
32
  readonly collectible?: boolean;
34
33
  readonly race?: string;
35
34
  readonly races?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"reference-card.js","sourceRoot":"","sources":["../../../src/models/reference-cards/reference-card.ts"],"names":[],"mappings":"","sourcesContent":["import { RarityTYpe } from './rarity.type';\r\nimport { ReferencePlayerClass } from './reference-player-class';\r\n\r\nexport interface ReferenceCard {\r\n\treadonly id: string;\r\n\treadonly dbfId: number;\r\n\treadonly name: string;\r\n\treadonly set: string;\r\n\treadonly classes?: readonly string[];\r\n\t/** @deprecated */\r\n\treadonly playerClass: ReferencePlayerClass;\r\n\t/** @deprecated */\r\n\treadonly cardClass: string;\r\n\treadonly cost?: number;\r\n\treadonly additionalCosts?: {\r\n\t\treadonly BLOODRUNE?: number;\r\n\t\treadonly FROSTRUNE?: number;\r\n\t\treadonly UNHOLYRUNE?: number;\r\n\t\treadonly DEATH?: number;\r\n\t};\r\n\treadonly attack?: number;\r\n\treadonly health?: number;\r\n\treadonly audio?: {\r\n\t\t[audioKey: string]: readonly string[];\r\n\t};\r\n\treadonly audio2?: ReferenceCardAudio;\r\n\treadonly text: string;\r\n\treadonly collectionText: string;\r\n\treadonly flavor: string;\r\n\treadonly type: string;\r\n\treadonly mechanics: string[];\r\n\treadonly referencedTags?: string[];\r\n\treadonly tags?: string[];\r\n\treadonly rarity?: RarityTYpe;\r\n\treadonly hasEliteFrame?: boolean;\r\n\treadonly collectible?: boolean;\r\n\treadonly race?: string;\r\n\treadonly races?: readonly string[];\r\n\treadonly techLevel?: number;\r\n\treadonly durability?: number;\r\n\treadonly armor?: number;\r\n\treadonly hideStats?: boolean;\r\n\r\n\treadonly battlegroundsHero?: boolean;\r\n\treadonly battlegroundsHeroSkin?: boolean;\r\n\treadonly battlegroundsHeroParentDbfId?: number;\r\n\treadonly battlegroundsPremiumDbfId?: number;\r\n\treadonly battlegroundsNormalDbfId?: number;\r\n\treadonly battlegroundsPutridicePool1?: boolean;\r\n\treadonly battlegroundsPutridicePool2?: boolean;\r\n\treadonly battlegroundsPutridiceSummonerExclusion?: boolean;\r\n\r\n\t// TODO: change this to use the enum later?\r\n\treadonly spellSchool?: string;\r\n\treadonly artist?: string;\r\n\treadonly questRewardDbfId?: number;\r\n\treadonly deckDuplicateDbfId?: number;\r\n\treadonly relatedCardDbfIds?: readonly number[];\r\n\r\n\treadonly availableAsDiamond?: boolean;\r\n\treadonly availableAsSignature?: boolean;\r\n\r\n\treadonly mercenary: boolean;\r\n\treadonly mercenaryRole: string;\r\n\treadonly mercenaryAbility: boolean;\r\n\treadonly mercenaryPassiveAbility: boolean;\r\n\treadonly mercenaryEquipment: boolean;\r\n\treadonly mercenaryTreasure: boolean;\r\n\treadonly mercenaryAbilityCooldown: number;\r\n\r\n\treadonly locales?: readonly CardLocale[];\r\n}\r\n\r\nexport interface CardLocale {\r\n\treadonly locale: string;\r\n\treadonly name: string;\r\n}\r\n\r\nexport interface ReferenceCardAudio {\r\n\t// The main sounds, like Play, Death, etc.\r\n\t[audioKey: string]: {\r\n\t\t// Each sound can be a juxtaposition of several effects\r\n\t\t[effectKey: string]: {\r\n\t\t\t// These sounds are always played\r\n\t\t\treadonly mainSounds: readonly string[];\r\n\t\t\t// One of each of these is played, with a probability depending on its weight\r\n\t\t\treadonly randomSounds: readonly {\r\n\t\t\t\treadonly weight: number;\r\n\t\t\t\treadonly sound: string;\r\n\t\t\t}[];\r\n\t\t};\r\n\t};\r\n}\r\n"]}
1
+ {"version":3,"file":"reference-card.js","sourceRoot":"","sources":["../../../src/models/reference-cards/reference-card.ts"],"names":[],"mappings":"","sourcesContent":["import { RarityTYpe } from './rarity.type';\r\nimport { ReferencePlayerClass } from './reference-player-class';\r\n\r\nexport interface ReferenceCard {\r\n\treadonly id: string;\r\n\treadonly dbfId: number;\r\n\treadonly name: string;\r\n\treadonly set: string;\r\n\treadonly classes?: readonly string[];\r\n\t/** @deprecated */\r\n\treadonly playerClass: ReferencePlayerClass;\r\n\t/** @deprecated */\r\n\treadonly cardClass: string;\r\n\treadonly cost?: number;\r\n\treadonly additionalCosts?: {\r\n\t\treadonly BLOODRUNE?: number;\r\n\t\treadonly FROSTRUNE?: number;\r\n\t\treadonly UNHOLYRUNE?: number;\r\n\t\treadonly DEATH?: number;\r\n\t};\r\n\treadonly attack?: number;\r\n\treadonly health?: number;\r\n\treadonly audio?: {\r\n\t\t[audioKey: string]: readonly string[];\r\n\t};\r\n\treadonly audio2?: ReferenceCardAudio;\r\n\treadonly text: string;\r\n\treadonly collectionText: string;\r\n\treadonly flavor: string;\r\n\treadonly type: string;\r\n\treadonly mechanics: string[];\r\n\treadonly referencedTags?: string[];\r\n\treadonly tags?: string[];\r\n\treadonly rarity?: RarityTYpe;\r\n\treadonly collectible?: boolean;\r\n\treadonly race?: string;\r\n\treadonly races?: readonly string[];\r\n\treadonly techLevel?: number;\r\n\treadonly durability?: number;\r\n\treadonly armor?: number;\r\n\treadonly hideStats?: boolean;\r\n\r\n\treadonly battlegroundsHero?: boolean;\r\n\treadonly battlegroundsHeroSkin?: boolean;\r\n\treadonly battlegroundsHeroParentDbfId?: number;\r\n\treadonly battlegroundsPremiumDbfId?: number;\r\n\treadonly battlegroundsNormalDbfId?: number;\r\n\treadonly battlegroundsPutridicePool1?: boolean;\r\n\treadonly battlegroundsPutridicePool2?: boolean;\r\n\treadonly battlegroundsPutridiceSummonerExclusion?: boolean;\r\n\r\n\t// TODO: change this to use the enum later?\r\n\treadonly spellSchool?: string;\r\n\treadonly artist?: string;\r\n\treadonly questRewardDbfId?: number;\r\n\treadonly deckDuplicateDbfId?: number;\r\n\treadonly relatedCardDbfIds?: readonly number[];\r\n\r\n\treadonly availableAsDiamond?: boolean;\r\n\treadonly availableAsSignature?: boolean;\r\n\r\n\treadonly mercenary: boolean;\r\n\treadonly mercenaryRole: string;\r\n\treadonly mercenaryAbility: boolean;\r\n\treadonly mercenaryPassiveAbility: boolean;\r\n\treadonly mercenaryEquipment: boolean;\r\n\treadonly mercenaryTreasure: boolean;\r\n\treadonly mercenaryAbilityCooldown: number;\r\n\r\n\treadonly locales?: readonly CardLocale[];\r\n}\r\n\r\nexport interface CardLocale {\r\n\treadonly locale: string;\r\n\treadonly name: string;\r\n}\r\n\r\nexport interface ReferenceCardAudio {\r\n\t// The main sounds, like Play, Death, etc.\r\n\t[audioKey: string]: {\r\n\t\t// Each sound can be a juxtaposition of several effects\r\n\t\t[effectKey: string]: {\r\n\t\t\t// These sounds are always played\r\n\t\t\treadonly mainSounds: readonly string[];\r\n\t\t\t// One of each of these is played, with a probability depending on its weight\r\n\t\t\treadonly randomSounds: readonly {\r\n\t\t\t\treadonly weight: number;\r\n\t\t\t\treadonly sound: string;\r\n\t\t\t}[];\r\n\t\t};\r\n\t};\r\n}\r\n"]}
@@ -161,6 +161,7 @@ exports.duelsActivePool2 = [
161
161
  "PVPDR_SCH_Active54",
162
162
  "DALA_705",
163
163
  "PVPDR_SCH_Active51",
164
+ "PVPDR_SCH_Active11",
164
165
  "TB_Diablo4_Promo_Card4",
165
166
  "ULDA_044",
166
167
  "DALA_702",
@@ -1 +1 @@
1
- {"version":3,"file":"duels-utils.js","sourceRoot":"","sources":["../../src/services/duels-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\nimport { GameTag, ReferenceCard } from '../public-api';\r\n\r\nexport const duelsPassivePool1 = [\r\n\tCardIds.AllShallServeTavernBrawl,\r\n\tCardIds.ArcaneFluxTavernBrawl,\r\n\tCardIds.ArcaniteCrystalTavernBrawl,\r\n\tCardIds.ArcticArmorTavernBrawl,\r\n\tCardIds.BeckoningBicornTavernBrawl,\r\n\t// CardIds.BeOurGuestTavernBrawl,\r\n\tCardIds.BitterColdTavernBrawl,\r\n\tCardIds.BloodShieldsTavernBrawl,\r\n\tCardIds.BookOfWonders,\r\n\tCardIds.CadaverCollectorTavernBrawl,\r\n\tCardIds.CannibalismTavernBrawl,\r\n\tCardIds.CoilCastingTavernBrawl,\r\n\t// CardIds.ConduitOfTheStormsTavernBrawl,\r\n\tCardIds.CrystalGemTavernBrawl,\r\n\tCardIds.DivineIlluminationTavernBrawl,\r\n\tCardIds.DragonbloodTavernBrawl,\r\n\tCardIds.DragonAffinityTavernBrawl,\r\n\tCardIds.EdgeOfDredgeTavernBrawl,\r\n\t// CardIds.EverChangingElixirTavernBrawl,\r\n\tCardIds.FirekeepersIdolTavernBrawl,\r\n\t// CardIds.FireshaperTavernBrawl,\r\n\tCardIds.ForgottenDepthsTavernBrawl,\r\n\tCardIds.FreezeSolidTavernBrawl,\r\n\tCardIds.FromTheSwampTavernBrawl,\r\n\tCardIds.GrommashsArmguardsTavernBrawl,\r\n\tCardIds.HoldTheLineTavernBrawl,\r\n\tCardIds.InspiringPresenceTavernBrawl,\r\n\tCardIds.InvigoratingLightTavernBrawl,\r\n\tCardIds.KindlingFlameTavernBrawl,\r\n\tCardIds.MendingPoolsTavernBrawl,\r\n\tCardIds.MysteriousTomeTavernBrawl,\r\n\tCardIds.NaturalForceTavernBrawl,\r\n\tCardIds.OpenTheDoorwaysTavernBrawl,\r\n\tCardIds.OptimizedPolarityTavernBrawl,\r\n\tCardIds.PillageTheFallenTavernBrawl,\r\n\t// CardIds.PlaguebringerTavernBrawl,\r\n\tCardIds.PotionOfSparkingTavernBrawl,\r\n\tCardIds.RecyclingTavernBrawl,\r\n\t// CardIds.RhoninsScryingOrbTavernBrawl,\r\n\tCardIds.RighteousReservesTavernBrawl,\r\n\tCardIds.RingOfPhaseshiftingTavernBrawl,\r\n\tCardIds.RobeOfTheApprenticeTavernBrawl,\r\n\tCardIds.RobesOfShrinkingTavernBrawl,\r\n\tCardIds.RocketBackpacksTavernBrawl,\r\n\t// CardIds.ScatteredCaltropsTavernBrawl,\r\n\tCardIds.SmallBackpacksTavernBrawl,\r\n\t// CardIds.SmallPouchesTavernBrawl,\r\n\tCardIds.StaffOfPainTavernBrawl,\r\n\tCardIds.StakingAClaimTavernBrawl,\r\n\tCardIds.StickyFingersTavernBrawl,\r\n\tCardIds.TheFloorIsLavaTavernBrawl,\r\n\tCardIds.UnholyGiftTavernBrawl,\r\n\tCardIds.WitherTheWeakTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2 = [\r\n\tCardIds.AllTogetherNowTavernBrawl,\r\n\tCardIds.AvengingArmamentsTavernBrawl,\r\n\tCardIds.BattleStanceTavernBrawl,\r\n\t// CardIds.Caltrops,\r\n\tCardIds.BrittleBonesTavernBrawl,\r\n\tCardIds.BronzeSignetTavernBrawl,\r\n\tCardIds.CloakOfEmeraldDreamsTavernBrawl,\r\n\tCardIds.ColdFeetPactTavernBrawl,\r\n\tCardIds.CookiesLadleTavernBrawl,\r\n\tCardIds.CorruptedFelstoneTavernBrawl,\r\n\tCardIds.DeathlyDeathTavernBrawl,\r\n\tCardIds.DoubleTime,\r\n\tCardIds.DraconicDreamTavernBrawl,\r\n\tCardIds.DragonboneRitualTavernBrawl,\r\n\tCardIds.EerieStoneTavernBrawl,\r\n\tCardIds.ElixirOfVigorTavernBrawl,\r\n\tCardIds.EmeraldGogglesTavernBrawl,\r\n\tCardIds.EnduranceTrainingTavernBrawl,\r\n\tCardIds.FlamesOfTheKirinTorTavernBrawl,\r\n\tCardIds.FlameWavesTavernBrawl,\r\n\tCardIds.GhoulsRushInTavernBrawl,\r\n\tCardIds.GlacialDownpourTavernBrawl,\r\n\tCardIds.GreedyGainsTavernBrawl,\r\n\tCardIds.GuardianLightTavernBrawl,\r\n\tCardIds.HagathasEmbraceTavernBrawl,\r\n\t// CardIds.HeavyArmorTavernBrawl,\r\n\tCardIds.IdolsOfEluneTavernBrawl,\r\n\tCardIds.ImpCredibleTrousersTavernBrawl,\r\n\tCardIds.IronRootsTavernBrawl,\r\n\tCardIds.KhadgarsScryingOrb,\r\n\tCardIds.LocationLocationLocationTavernBrawl,\r\n\tCardIds.MeekMasteryTavernBrawl,\r\n\tCardIds.MulchMadnessTavernBrawl,\r\n\tCardIds.MummyMagic,\r\n\tCardIds.OopsAllSpellsTavernBrawl,\r\n\tCardIds.OrbOfRevelationTavernBrawl,\r\n\tCardIds.PartyReplacementTavernBrawl,\r\n\tCardIds.RallyTheTroopsTavernBrawl,\r\n\tCardIds.RingOfBlackIceTavernBrawl,\r\n\tCardIds.RingOfRefreshmentTavernBrawl,\r\n\tCardIds.RunicHelmTavernBrawl,\r\n\tCardIds.SpreadingSaplingsTavernBrawl,\r\n\tCardIds.StarvingTavernBrawl,\r\n\tCardIds.SunstridersCrownTavernBrawl,\r\n\tCardIds.UnlockedPotential,\r\n];\r\n\r\nexport const duelsPassivePool2UltraRare = [\r\n\tCardIds.BandOfBeesTavernBrawl,\r\n\tCardIds.BattleTotem_LOOTA_846,\r\n\tCardIds.CapturedFlag,\r\n\tCardIds.DisksOfLegendTavernBrawl,\r\n\t// CardIds.DisksOfLegend,\r\n\tCardIds.ExpeditedBurialTavernBrawl,\r\n\tCardIds.LegendaryLootTavernBrawl,\r\n\tCardIds.ManastormTavernBrawl,\r\n\tCardIds.MantleOfIgnitionTavernBrawl,\r\n\tCardIds.RingOfHasteTavernBrawl,\r\n\tCardIds.RobeOfTheMagi,\r\n\tCardIds.ScepterOfSummoning,\r\n\tCardIds.Shadowcasting101TavernBrawl,\r\n\tCardIds.SpecialDeliveryTavernBrawl,\r\n\tCardIds.Stargazing,\r\n\tCardIds.TotemOfTheDead_LOOTA_845,\r\n\tCardIds.UnstableMagicTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool1 = [\r\n\tCardIds.AmalgamateTavernBrawl,\r\n\tCardIds.AstralPortalTavernBrawl,\r\n\tCardIds.BeastlyBeautyTavernBrawl,\r\n\tCardIds.BubbaTavernBrawl,\r\n\tCardIds.ButchTavernBrawl,\r\n\tCardIds.BladeOfQueldelarTavernBrawl,\r\n\tCardIds.BloodMoonTavernBrawl,\r\n\tCardIds.ClockworkAssistantTavernBrawl_PVPDR_SCH_Active48,\r\n\tCardIds.CoinPouchTavernBrawl,\r\n\tCardIds.CreepyCurioTavernBrawl,\r\n\tCardIds.CrustyTheCrustaceanTavernBrawl,\r\n\tCardIds.Queldelar_HiltOfQueldelar,\r\n\tCardIds.Deathcharger,\r\n\tCardIds.Enrage,\r\n\tCardIds.GentlemansTopHat,\r\n\tCardIds.GoldenKobold,\r\n\tCardIds.GreedyPickaxeTavernBrawl,\r\n\tCardIds.HolyBookTavernBrawl,\r\n\tCardIds.HuntersInsightTavernBrawl,\r\n\tCardIds.JawsTavernBrawl,\r\n\tCardIds.LoyalHenchmanTavernBrawl,\r\n\tCardIds.LoyalSidekickTavernBrawl,\r\n\tCardIds.LoomingPresence_LOEA_01,\r\n\tCardIds.MageArmorTavernBrawl,\r\n\t// CardIds.MaskOfMimicryTavernBrawl,\r\n\tCardIds.MindpocalypseTavernBrawl,\r\n\tCardIds.DetectiveMurlocHolmesTavernBrawl,\r\n\tCardIds.MutatingInjection_NAX11_04,\r\n\tCardIds.NecroticPoisonTavernBrawl,\r\n\tCardIds.OldMilitiaHornTavernBrawl,\r\n\tCardIds.PartyPortalTavernBrawl_PVPDR_SCH_Active08,\r\n\tCardIds.PrincessTavernBrawl,\r\n\tCardIds.PureColdTavernBrawl,\r\n\tCardIds.PuzzleBoxTavernBrawl_PVPDR_SCH_Active02,\r\n\tCardIds.SowTheSeedsTavernBrawl,\r\n\tCardIds.SpyglassTavernBrawl,\r\n\tCardIds.SuperchargeTavernBrawl,\r\n\tCardIds.SurlyMobTavernBrawl,\r\n\tCardIds.TheExorcisorTavernBrawl,\r\n\tCardIds.TheStoneOfJordanTavernBrawlToken,\r\n\tCardIds.VampiricFangsToken,\r\n\tCardIds.WorshipperHeroic,\r\n];\r\n\r\nexport const duelsActivePool2 = [\r\n\tCardIds.ArchmageStaffTavernBrawl,\r\n\tCardIds.BagOfCoinsTavernBrawl,\r\n\tCardIds.BookOfTheDeadTavernBrawl,\r\n\tCardIds.GrimmerPatron_DALA_705,\r\n\tCardIds.HyperblasterTavernBrawl,\r\n\t// CardIds.AncientReflectionsTavernBrawl,\r\n\t// CardIds.BagOfStuffingTavernBrawl,\r\n\tCardIds.BlackSoulstoneTavernBrawl,\r\n\tCardIds.BladeOfTheBurningSun,\r\n\tCardIds.GnomishArmyKnife_DALA_702,\r\n\tCardIds.BananaSplitTavernBrawl,\r\n\tCardIds.CanopicJarsTavernBrawl,\r\n\tCardIds.PhaorisBlade_ULDA_043,\r\n\tCardIds.RoyalGift,\r\n\tCardIds.StaffOfScales_ULDA_008,\r\n\tCardIds.TinyThimbleTavernBrawl,\r\n\tCardIds.WandOfDisintegrationTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool2UltraRare = [\r\n\tCardIds.ChaosTheoryTavernBrawl_PVPDR_SCH_Active49,\r\n\tCardIds.OverpoweredTavernBrawl,\r\n\tCardIds.DreamgroveRing,\r\n\tCardIds.EmbersOfRagnarosTavernBrawl,\r\n\tCardIds.WaxRager_LOOTA_840,\r\n\tCardIds.WishTavernBrawl,\r\n];\r\n\r\nexport const allDuelsPassiveTreasures = [...duelsPassivePool1, ...duelsPassivePool2, ...duelsPassivePool2UltraRare];\r\n\r\nexport const allDuelsTreasureCardIds = [\r\n\t...allDuelsPassiveTreasures,\r\n\t...duelsActivePool1,\r\n\t...duelsActivePool2,\r\n\t...duelsActivePool2UltraRare,\r\n];\r\n\r\nexport const normalizeDuelsHeroCardId = (heroCardId: string): string => {\r\n\tswitch (heroCardId) {\r\n\t\tcase CardIds.VanndarStormpikeTavernBrawl:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5:\r\n\t\t\treturn CardIds.VanndarStormpikeTavernBrawl;\r\n\t\tcase CardIds.DrektharTavernBrawl:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5:\r\n\t\t\treturn CardIds.DrektharTavernBrawl;\r\n\t\tdefault:\r\n\t\t\treturn heroCardId;\r\n\t}\r\n};\r\n\r\n// Shouldn't be needed anymore, as deck codes are properly supported for these heroes\r\n// export const normalizeDuelsHeroCardIdForDeckCode = (heroCardId: string): string => {\r\n// \tswitch (heroCardId) {\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1:\r\n// \t\t\treturn CardIds.IllidanStormrageHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2:\r\n// \t\t\treturn CardIds.RexxarHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3:\r\n// \t\t\treturn CardIds.UtherLightbringerHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4:\r\n// \t\t\treturn CardIds.AnduinWrynnHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5:\r\n// \t\t\treturn CardIds.ValeeraSanguinarHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1:\r\n// \t\t\treturn CardIds.MalfurionStormrageHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2:\r\n// \t\t\treturn CardIds.JainaProudmooreHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3:\r\n// \t\t\treturn CardIds.ThrallHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4:\r\n// \t\t\treturn CardIds.GuldanHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5:\r\n// \t\t\treturn CardIds.GarroshHellscreamHeroSkins;\r\n// \t\tdefault:\r\n// \t\t\treturn heroCardId;\r\n// \t}\r\n// };\r\n\r\n// Maybe it's possible to extract this from the game files or memory somehow?\r\n// Since it doesn't change often it's ok to maintain it manually, at least for now\r\nexport const duelsHeroConfigs = [\r\n\t{\r\n\t\thero: CardIds.StarStudentStelinaTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DEMONHUNTER],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.InfernalStrikeTavernBrawl,\r\n\t\t\tCardIds.OutlanderTavernBrawl,\r\n\t\t\tCardIds.IllidariStrikeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SummoningRitualTavernBrawlToken,\r\n\t\t\tCardIds.MoargOutcastTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheLegionTavernBrawl,\r\n\t\t\tCardIds.BindingChainsTavernBrawlToken,\r\n\t\t\tCardIds.BladeOfQuickeningTavernBrawlToken,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ForestWardenOmuTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DRUID],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NaturesGiftsTavernBrawl,\r\n\t\t\tCardIds.InvigoratingBloomTavernBrawl,\r\n\t\t\tCardIds.HarvestTimeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WardensInsightTavernBrawlToken,\r\n\t\t\tCardIds.MoonbeastTavernBrawlToken,\r\n\t\t\tCardIds.HerdingHornTavernBrawlToken,\r\n\t\t\tCardIds.MarvelousMyceliumTavernBrawlToken,\r\n\t\t\tCardIds.AwakenedAncientTavernBrawl,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ProfessorSlateTavernBrawl,\r\n\t\t// heroClasses: [CardClass.HUNTER],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SurvivalTrainingTavernBrawl,\r\n\t\t\tCardIds.DeathGamesTavernBrawl,\r\n\t\t\tCardIds.SavageSecretsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SlatesSyringeTavernBrawl,\r\n\t\t\tCardIds.BonecrusherTavernBrawlToken,\r\n\t\t\tCardIds.StalkingPrideTavernBrawlToken,\r\n\t\t\tCardIds.DeathstriderTavernBrawl,\r\n\t\t\tCardIds.CarrotOnAStickTavernBrawl,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MozakiMasterDuelistTavernBrawl,\r\n\t\t// heroClasses: [CardClass.MAGE],\r\n\t\theroPowers: [CardIds.WyrmBoltTavernBrawl, CardIds.SecretStudiesTavernBrawl, CardIds.FrostShardsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WandOfDuelingTavernBrawlToken,\r\n\t\t\tCardIds.ElementalLearningTavernBrawl,\r\n\t\t\tCardIds.InfiniteArcaneTavernBrawlToken,\r\n\t\t\tCardIds.EmbercasterTavernBrawl,\r\n\t\t\tCardIds.YoggTasticTastiesTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.TuralyonTheTenuredTavernBrawl,\r\n\t\t// heroClasses: [CardClass.PALADIN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FromGoldenLightTavernBrawl,\r\n\t\t\tCardIds.BringOnRecruitsTavernBrawl,\r\n\t\t\tCardIds.ModestAspirationsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RoyalGreatswordTavernBrawlToken,\r\n\t\t\tCardIds.MenAtArmsTavernBrawlToken,\r\n\t\t\tCardIds.DrocomurchanicasTavernBrawlToken,\r\n\t\t\tCardIds.FavoredRacerTavernBrawl,\r\n\t\t\tCardIds.HumbleBlessingsTavernBrawl,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MindrenderIlluciaTavernBrawl,\r\n\t\t// heroClasses: [CardClass.PRIEST],\r\n\t\theroPowers: [CardIds.ShadowMendTavernBrawl, CardIds.MindTetherTavernBrawl, CardIds.CallOfMadnessTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FracturedSpiritsTavernBrawlToken,\r\n\t\t\tCardIds.DropletOfInsanityTavernBrawlToken,\r\n\t\t\tCardIds.ScionOfTheDeepTavernBrawlToken,\r\n\t\t\tCardIds.ShadowWordVoidTavernBrawl,\r\n\t\t\tCardIds.HeraldOfTheScaledOnesTavernBrawl,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InfiltratorLilianTavernBrawl,\r\n\t\t// heroClasses: [CardClass.ROGUE],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.RoguishManeuversTavernBrawl,\r\n\t\t\tCardIds.ConnectionsTavernBrawl,\r\n\t\t\tCardIds.VileConcoctionTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.DeadlyWeapons101TavernBrawlToken,\r\n\t\t\tCardIds.NerubianPeddlerTavernBrawlToken,\r\n\t\t\tCardIds.AcquiredAlliesTavernBrawlToken,\r\n\t\t\tCardIds.AceInTheHoleTavernBrawlToken,\r\n\t\t\tCardIds.GreenTortollanShellTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InstructorFireheartTavernBrawlToken,\r\n\t\t// heroClasses: [CardClass.SHAMAN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.StormcatcherTavernBrawl,\r\n\t\t\tCardIds.TotemicPowerTavernBrawl,\r\n\t\t\tCardIds.FerociousFlurryTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ChaosStormTavernBrawl,\r\n\t\t\tCardIds.FluctuatingTotemTavernBrawlToken,\r\n\t\t\tCardIds.InvokeTheVoidTavernBrawlToken,\r\n\t\t\tCardIds.PayloadTotemSpecialistTavernBrawl,\r\n\t\t\tCardIds.TempestsFuryTavernBrawlToken,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ArchwitchWillowTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARLOCK],\r\n\t\theroPowers: [CardIds.DarkArtsTavernBrawl, CardIds.DemonBloodTavernBrawl, CardIds.SoulcialStudiesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ImpishAidTavernBrawl,\r\n\t\t\tCardIds.GiftOfTheOldGodsTavernBrawlToken,\r\n\t\t\tCardIds.KillmoxTheBanishedOneTavernBrawlToken,\r\n\t\t\tCardIds.Demonology101TavernBrawlToken,\r\n\t\t\tCardIds.DemonizerTavernBrawlToken,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RattlegoreTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARRIOR],\r\n\t\theroPowers: [CardIds.NoGutsNoGloryTavernBrawl, CardIds.BruisingTavernBrawl, CardIds.MagneticMinesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.AutoArmamentsTavernBrawlToken,\r\n\t\t\tCardIds.CollectorsIreTavernBrawlToken,\r\n\t\t\tCardIds.BrewsterTheBrutalTavernBrawlToken,\r\n\t\t\tCardIds.ScrapmetalDemolitionistTavernBrawl,\r\n\t\t\tCardIds.SpikedArmsTavernBrawlToken,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DrektharTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5,\r\n\t\t],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.WarmastersFrenzyTavernBrawl,\r\n\t\t\tCardIds.HarnessTheElementsTavernBrawl,\r\n\t\t\tCardIds.WarCommandsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ValorousDisplayTavernBrawlToken,\r\n\t\t\tCardIds.ElementalChaosTavernBrawlToken,\r\n\t\t\tCardIds.PactOfTheLichTavernBrawlToken,\r\n\t\t\tCardIds.MagisterUnchainedTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheHeartTavernBrawlToken,\r\n\t\t\tCardIds.ForTheHordeTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.VanndarStormpikeTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5,\r\n\t\t],\r\n\t\theroPowers: [CardIds.PromoteTavernBrawl, CardIds.SendInTheScoutTavernBrawl, CardIds.BattleTacticsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ForgeInLightTavernBrawlToken,\r\n\t\t\tCardIds.SpymastersGambitTavernBrawlToken,\r\n\t\t\tCardIds.StalkersSuppliesTavernBrawlToken,\r\n\t\t\tCardIds.RendingAmbushTavernBrawlToken,\r\n\t\t\tCardIds.DevoutBlessingsTavernBrawlToken,\r\n\t\t\tCardIds.ForTheAllianceTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RenoJacksonTavernBrawl_PVPDR_Hero_Reno,\r\n\t\t// heroClasses: [CardClass.MAGE, CardClass.ROGUE],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.AmateurMageTavernBrawl,\r\n\t\t\tCardIds.RelicologistTavernBrawl,\r\n\t\t\tCardIds.ArcaneCraftinessTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RenosLuckyHatTavernBrawl,\r\n\t\t\tCardIds.RenosCraftyLassoTavernBrawl,\r\n\t\t\tCardIds.RenosMagicalTorchTavernBrawl,\r\n\t\t\tCardIds.SrTombDiverTavernBrawl,\r\n\t\t\tCardIds.LeiFlamepawTavernBrawl,\r\n\t\t\tCardIds.TheGatlingWandTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SirFinleyTavernBrawl_PVPDR_Hero_Finley,\r\n\t\t// heroClasses: [CardClass.PALADIN, CardClass.SHAMAN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NewRecruitsTavernBrawl,\r\n\t\t\tCardIds.BubbleBlowerTavernBrawl,\r\n\t\t\tCardIds.PowerUpTavernBrawl_PVPDR_Finley_HP3,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FinleysPithHelmetTavernBrawl,\r\n\t\t\tCardIds.MaxwellMightySteedTavernBrawl,\r\n\t\t\tCardIds.TruesilverLanceTavernBrawl,\r\n\t\t\tCardIds.SrScoutTavernBrawl,\r\n\t\t\tCardIds.KarlTheLostTavernBrawl,\r\n\t\t\tCardIds.ScalesOfJusticeTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.EliseStarseekerTavernBrawl_PVPDR_Hero_Elise,\r\n\t\t// heroClasses: [CardClass.DRUID, CardClass.PRIEST],\r\n\t\theroPowers: [CardIds.ElisesMightTavernBrawl, CardIds.DruidicTeachingTavernBrawl, CardIds.StarseekerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.StarseekersToolsTavernBrawl,\r\n\t\t\tCardIds.ElisesMacheteTavernBrawl,\r\n\t\t\tCardIds.AddarahTavernBrawl,\r\n\t\t\tCardIds.SrNavigatorTavernBrawl,\r\n\t\t\tCardIds.AcademicResearchTavernBrawl,\r\n\t\t\tCardIds.StaffOfRenewalTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.BrannBronzebeardTavernBrawl_PVPDR_Hero_Brann,\r\n\t\t// heroClasses: [CardClass.HUNTER, CardClass.WARRIOR],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SpreadShotTavernBrawl,\r\n\t\t\tCardIds.WellEquippedTavernBrawl_PVPDR_Brann_HP2,\r\n\t\t\tCardIds.DinoTrackingTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.OlFaithfulTavernBrawl,\r\n\t\t\tCardIds.BrannsSaddleTavernBrawl,\r\n\t\t\tCardIds.TitanForgedGrapnelTavernBrawl,\r\n\t\t\tCardIds.SrExcavatorTavernBrawl,\r\n\t\t\tCardIds.FloSlatebrandTavernBrawl,\r\n\t\t\tCardIds.BrannsEpicEggTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DariusCrowleyTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARRIOR],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FireTavernBrawl_PVPDR_Darius_P1,\r\n\t\t\tCardIds.FireAwayTavernBrawl,\r\n\t\t\tCardIds.FireAtTheeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SafeHarborTavernBrawl,\r\n\t\t\tCardIds.GrizzledReinforcementTavernBrawl,\r\n\t\t\tCardIds.TuskarrRaiderTavernBrawl,\r\n\t\t\tCardIds.SeabreakerGoliathTavernBrawl,\r\n\t\t\tCardIds.DeckSwabbieTavernBrawl,\r\n\t\t\tCardIds.DraconicMunitionTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SaiShadestormTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DEATHKNIGHT],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.GhoulBlitzTavernBrawl,\r\n\t\t\tCardIds.GatheringStormTavernBrawl,\r\n\t\t\tCardIds.LichborneMightTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.GluthTavernBrawl_PVPDR_Sai_T1,\r\n\t\t\tCardIds.GlaciaxeTavernBrawl,\r\n\t\t\tCardIds.RemembranceOfIceTavernBrawl,\r\n\t\t\tCardIds.UnholyEmbraceTavernBrawl,\r\n\t\t\tCardIds.GluthSicleTavernBrawl,\r\n\t\t\tCardIds.InexorableGhoulTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ScarletLeafdancerTavernBrawlToken,\r\n\t\t// heroClasses: [CardClass.DEATHKNIGHT],\r\n\t\theroPowers: [CardIds.BloodParasiteTavernBrawl, CardIds.HematologyTavernBrawl, CardIds.ScourgingTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RunedSoulbladeTavernBrawl,\r\n\t\t\tCardIds.ScourgeStrikeTavernBrawl,\r\n\t\t\tCardIds.CrimsonTavernBrawl,\r\n\t\t\tCardIds.IronweaveBloodletterTavernBrawl,\r\n\t\t\tCardIds.GreatswordOfTheEbonBladeTavernBrawl,\r\n\t\t\tCardIds.ContagionConcoctionTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DiabloTavernBrawl_PVPDR_Hero_Diablo,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.DoomChargeTavernBrawl,\r\n\t\t\tCardIds.PrimalPowerTavernBrawl,\r\n\t\t\tCardIds.DemonicTransformationTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ClawsOfTerrorTavernBrawlToken,\r\n\t\t\tCardIds.FireStompTavernBrawlToken,\r\n\t\t\tCardIds.ApocalypseTavernBrawlToken,\r\n\t\t\tCardIds.SoulstoneTrapTavernBrawlToken,\r\n\t\t\tCardIds.HornsOfFlameTavernBrawlToken,\r\n\t\t\tCardIds.JourneyToTheEastTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport const allDuelsSignatureTreasures = duelsHeroConfigs.flatMap((info) => info.signatureTreasures);\r\n\r\nexport const allDuelsHeroes = duelsHeroConfigs.map((conf) => conf.hero);\r\nexport const allDuelsHeroesExtended = duelsHeroConfigs.flatMap((conf) => [conf.hero, ...(conf.alternateHeroes ?? [])]);\r\n\r\nexport const isPassive = (\r\n\tcardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): boolean => {\r\n\treturn (\r\n\t\tallDuelsPassiveTreasures.includes(cardId as CardIds) ||\r\n\t\tallCards.getCard(cardId)?.mechanics?.includes(GameTag[GameTag.DUNGEON_PASSIVE_BUFF])\r\n\t);\r\n};\r\n\r\n// https://hearthstone.fandom.com/wiki/Duels#Current_season\r\nexport const duelsTreasureRank = (cardId: string): number => {\r\n\tif (!cardId) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!allDuelsTreasureCardIds.includes(cardId as CardIds)) {\r\n\t\tconsole.error('Incorrect config for duels card IDs?', cardId);\r\n\t\treturn 0;\r\n\t}\r\n\tif (duelsPassivePool2.includes(cardId as CardIds) || duelsActivePool2.includes(cardId as CardIds)) {\r\n\t\treturn 2;\r\n\t} else if (\r\n\t\tduelsPassivePool2UltraRare.includes(cardId as CardIds) ||\r\n\t\tduelsActivePool2UltraRare.includes(cardId as CardIds)\r\n\t) {\r\n\t\treturn 3;\r\n\t}\r\n\treturn 1;\r\n};\r\n\r\nexport const isSignatureTreasure = (cardId: string): boolean => {\r\n\treturn allDuelsSignatureTreasures.includes(cardId as CardIds);\r\n};\r\n"]}
1
+ {"version":3,"file":"duels-utils.js","sourceRoot":"","sources":["../../src/services/duels-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\nimport { GameTag, ReferenceCard } from '../public-api';\r\n\r\nexport const duelsPassivePool1 = [\r\n\tCardIds.AllShallServeTavernBrawl,\r\n\tCardIds.ArcaneFluxTavernBrawl,\r\n\tCardIds.ArcaniteCrystalTavernBrawl,\r\n\tCardIds.ArcticArmorTavernBrawl,\r\n\tCardIds.BeckoningBicornTavernBrawl,\r\n\t// CardIds.BeOurGuestTavernBrawl,\r\n\tCardIds.BitterColdTavernBrawl,\r\n\tCardIds.BloodShieldsTavernBrawl,\r\n\tCardIds.BookOfWonders,\r\n\tCardIds.CadaverCollectorTavernBrawl,\r\n\tCardIds.CannibalismTavernBrawl,\r\n\tCardIds.CoilCastingTavernBrawl,\r\n\t// CardIds.ConduitOfTheStormsTavernBrawl,\r\n\tCardIds.CrystalGemTavernBrawl,\r\n\tCardIds.DivineIlluminationTavernBrawl,\r\n\tCardIds.DragonbloodTavernBrawl,\r\n\tCardIds.DragonAffinityTavernBrawl,\r\n\tCardIds.EdgeOfDredgeTavernBrawl,\r\n\t// CardIds.EverChangingElixirTavernBrawl,\r\n\tCardIds.FirekeepersIdolTavernBrawl,\r\n\t// CardIds.FireshaperTavernBrawl,\r\n\tCardIds.ForgottenDepthsTavernBrawl,\r\n\tCardIds.FreezeSolidTavernBrawl,\r\n\tCardIds.FromTheSwampTavernBrawl,\r\n\tCardIds.GrommashsArmguardsTavernBrawl,\r\n\tCardIds.HoldTheLineTavernBrawl,\r\n\tCardIds.InspiringPresenceTavernBrawl,\r\n\tCardIds.InvigoratingLightTavernBrawl,\r\n\tCardIds.KindlingFlameTavernBrawl,\r\n\tCardIds.MendingPoolsTavernBrawl,\r\n\tCardIds.MysteriousTomeTavernBrawl,\r\n\tCardIds.NaturalForceTavernBrawl,\r\n\tCardIds.OpenTheDoorwaysTavernBrawl,\r\n\tCardIds.OptimizedPolarityTavernBrawl,\r\n\tCardIds.PillageTheFallenTavernBrawl,\r\n\t// CardIds.PlaguebringerTavernBrawl,\r\n\tCardIds.PotionOfSparkingTavernBrawl,\r\n\tCardIds.RecyclingTavernBrawl,\r\n\t// CardIds.RhoninsScryingOrbTavernBrawl,\r\n\tCardIds.RighteousReservesTavernBrawl,\r\n\tCardIds.RingOfPhaseshiftingTavernBrawl,\r\n\tCardIds.RobeOfTheApprenticeTavernBrawl,\r\n\tCardIds.RobesOfShrinkingTavernBrawl,\r\n\tCardIds.RocketBackpacksTavernBrawl,\r\n\t// CardIds.ScatteredCaltropsTavernBrawl,\r\n\tCardIds.SmallBackpacksTavernBrawl,\r\n\t// CardIds.SmallPouchesTavernBrawl,\r\n\tCardIds.StaffOfPainTavernBrawl,\r\n\tCardIds.StakingAClaimTavernBrawl,\r\n\tCardIds.StickyFingersTavernBrawl,\r\n\tCardIds.TheFloorIsLavaTavernBrawl,\r\n\tCardIds.UnholyGiftTavernBrawl,\r\n\tCardIds.WitherTheWeakTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2 = [\r\n\tCardIds.AllTogetherNowTavernBrawl,\r\n\tCardIds.AvengingArmamentsTavernBrawl,\r\n\tCardIds.BattleStanceTavernBrawl,\r\n\t// CardIds.Caltrops,\r\n\tCardIds.BrittleBonesTavernBrawl,\r\n\tCardIds.BronzeSignetTavernBrawl,\r\n\tCardIds.CloakOfEmeraldDreamsTavernBrawl,\r\n\tCardIds.ColdFeetPactTavernBrawl,\r\n\tCardIds.CookiesLadleTavernBrawl,\r\n\tCardIds.CorruptedFelstoneTavernBrawl,\r\n\tCardIds.DeathlyDeathTavernBrawl,\r\n\tCardIds.DoubleTime,\r\n\tCardIds.DraconicDreamTavernBrawl,\r\n\tCardIds.DragonboneRitualTavernBrawl,\r\n\tCardIds.EerieStoneTavernBrawl,\r\n\tCardIds.ElixirOfVigorTavernBrawl,\r\n\tCardIds.EmeraldGogglesTavernBrawl,\r\n\tCardIds.EnduranceTrainingTavernBrawl,\r\n\tCardIds.FlamesOfTheKirinTorTavernBrawl,\r\n\tCardIds.FlameWavesTavernBrawl,\r\n\tCardIds.GhoulsRushInTavernBrawl,\r\n\tCardIds.GlacialDownpourTavernBrawl,\r\n\tCardIds.GreedyGainsTavernBrawl,\r\n\tCardIds.GuardianLightTavernBrawl,\r\n\tCardIds.HagathasEmbraceTavernBrawl,\r\n\t// CardIds.HeavyArmorTavernBrawl,\r\n\tCardIds.IdolsOfEluneTavernBrawl,\r\n\tCardIds.ImpCredibleTrousersTavernBrawl,\r\n\tCardIds.IronRootsTavernBrawl,\r\n\tCardIds.KhadgarsScryingOrb,\r\n\tCardIds.LocationLocationLocationTavernBrawl,\r\n\tCardIds.MeekMasteryTavernBrawl,\r\n\tCardIds.MulchMadnessTavernBrawl,\r\n\tCardIds.MummyMagic,\r\n\tCardIds.OopsAllSpellsTavernBrawl,\r\n\tCardIds.OrbOfRevelationTavernBrawl,\r\n\tCardIds.PartyReplacementTavernBrawl,\r\n\tCardIds.RallyTheTroopsTavernBrawl,\r\n\tCardIds.RingOfBlackIceTavernBrawl,\r\n\tCardIds.RingOfRefreshmentTavernBrawl,\r\n\tCardIds.RunicHelmTavernBrawl,\r\n\tCardIds.SpreadingSaplingsTavernBrawl,\r\n\tCardIds.StarvingTavernBrawl,\r\n\tCardIds.SunstridersCrownTavernBrawl,\r\n\tCardIds.UnlockedPotential,\r\n];\r\n\r\nexport const duelsPassivePool2UltraRare = [\r\n\tCardIds.BandOfBeesTavernBrawl,\r\n\tCardIds.BattleTotem_LOOTA_846,\r\n\tCardIds.CapturedFlag,\r\n\tCardIds.DisksOfLegendTavernBrawl,\r\n\t// CardIds.DisksOfLegend,\r\n\tCardIds.ExpeditedBurialTavernBrawl,\r\n\tCardIds.LegendaryLootTavernBrawl,\r\n\tCardIds.ManastormTavernBrawl,\r\n\tCardIds.MantleOfIgnitionTavernBrawl,\r\n\tCardIds.RingOfHasteTavernBrawl,\r\n\tCardIds.RobeOfTheMagi,\r\n\tCardIds.ScepterOfSummoning,\r\n\tCardIds.Shadowcasting101TavernBrawl,\r\n\tCardIds.SpecialDeliveryTavernBrawl,\r\n\tCardIds.Stargazing,\r\n\tCardIds.TotemOfTheDead_LOOTA_845,\r\n\tCardIds.UnstableMagicTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool1 = [\r\n\tCardIds.AmalgamateTavernBrawl,\r\n\tCardIds.AstralPortalTavernBrawl,\r\n\tCardIds.BeastlyBeautyTavernBrawl,\r\n\tCardIds.BubbaTavernBrawl,\r\n\tCardIds.ButchTavernBrawl,\r\n\tCardIds.BladeOfQueldelarTavernBrawl,\r\n\tCardIds.BloodMoonTavernBrawl,\r\n\tCardIds.ClockworkAssistantTavernBrawl_PVPDR_SCH_Active48,\r\n\tCardIds.CoinPouchTavernBrawl,\r\n\tCardIds.CreepyCurioTavernBrawl,\r\n\tCardIds.CrustyTheCrustaceanTavernBrawl,\r\n\tCardIds.Queldelar_HiltOfQueldelar,\r\n\tCardIds.Deathcharger,\r\n\tCardIds.Enrage,\r\n\tCardIds.GentlemansTopHat,\r\n\tCardIds.GoldenKobold,\r\n\tCardIds.GreedyPickaxeTavernBrawl,\r\n\tCardIds.HolyBookTavernBrawl,\r\n\tCardIds.HuntersInsightTavernBrawl,\r\n\tCardIds.JawsTavernBrawl,\r\n\tCardIds.LoyalHenchmanTavernBrawl,\r\n\tCardIds.LoyalSidekickTavernBrawl,\r\n\tCardIds.LoomingPresence_LOEA_01,\r\n\tCardIds.MageArmorTavernBrawl,\r\n\t// CardIds.MaskOfMimicryTavernBrawl,\r\n\tCardIds.MindpocalypseTavernBrawl,\r\n\tCardIds.DetectiveMurlocHolmesTavernBrawl,\r\n\tCardIds.MutatingInjection_NAX11_04,\r\n\tCardIds.NecroticPoisonTavernBrawl,\r\n\tCardIds.OldMilitiaHornTavernBrawl,\r\n\tCardIds.PartyPortalTavernBrawl_PVPDR_SCH_Active08,\r\n\tCardIds.PrincessTavernBrawl,\r\n\tCardIds.PureColdTavernBrawl,\r\n\tCardIds.PuzzleBoxTavernBrawl_PVPDR_SCH_Active02,\r\n\tCardIds.SowTheSeedsTavernBrawl,\r\n\tCardIds.SpyglassTavernBrawl,\r\n\tCardIds.SuperchargeTavernBrawl,\r\n\tCardIds.SurlyMobTavernBrawl,\r\n\tCardIds.TheExorcisorTavernBrawl,\r\n\tCardIds.TheStoneOfJordanTavernBrawlToken,\r\n\tCardIds.VampiricFangsToken,\r\n\tCardIds.WorshipperHeroic,\r\n];\r\n\r\nexport const duelsActivePool2 = [\r\n\tCardIds.ArchmageStaffTavernBrawl,\r\n\tCardIds.BagOfCoinsTavernBrawl,\r\n\tCardIds.BookOfTheDeadTavernBrawl,\r\n\tCardIds.GrimmerPatron_DALA_705,\r\n\tCardIds.HyperblasterTavernBrawl,\r\n\t// CardIds.AncientReflectionsTavernBrawl,\r\n\tCardIds.BagOfStuffingTavernBrawl,\r\n\tCardIds.BlackSoulstoneTavernBrawl,\r\n\tCardIds.BladeOfTheBurningSun,\r\n\tCardIds.GnomishArmyKnife_DALA_702,\r\n\tCardIds.BananaSplitTavernBrawl,\r\n\tCardIds.CanopicJarsTavernBrawl,\r\n\tCardIds.PhaorisBlade_ULDA_043,\r\n\tCardIds.RoyalGift,\r\n\tCardIds.StaffOfScales_ULDA_008,\r\n\tCardIds.TinyThimbleTavernBrawl,\r\n\tCardIds.WandOfDisintegrationTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool2UltraRare = [\r\n\tCardIds.ChaosTheoryTavernBrawl_PVPDR_SCH_Active49,\r\n\tCardIds.OverpoweredTavernBrawl,\r\n\tCardIds.DreamgroveRing,\r\n\tCardIds.EmbersOfRagnarosTavernBrawl,\r\n\tCardIds.WaxRager_LOOTA_840,\r\n\tCardIds.WishTavernBrawl,\r\n];\r\n\r\nexport const allDuelsPassiveTreasures = [...duelsPassivePool1, ...duelsPassivePool2, ...duelsPassivePool2UltraRare];\r\n\r\nexport const allDuelsTreasureCardIds = [\r\n\t...allDuelsPassiveTreasures,\r\n\t...duelsActivePool1,\r\n\t...duelsActivePool2,\r\n\t...duelsActivePool2UltraRare,\r\n];\r\n\r\nexport const normalizeDuelsHeroCardId = (heroCardId: string): string => {\r\n\tswitch (heroCardId) {\r\n\t\tcase CardIds.VanndarStormpikeTavernBrawl:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5:\r\n\t\t\treturn CardIds.VanndarStormpikeTavernBrawl;\r\n\t\tcase CardIds.DrektharTavernBrawl:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5:\r\n\t\t\treturn CardIds.DrektharTavernBrawl;\r\n\t\tdefault:\r\n\t\t\treturn heroCardId;\r\n\t}\r\n};\r\n\r\n// Shouldn't be needed anymore, as deck codes are properly supported for these heroes\r\n// export const normalizeDuelsHeroCardIdForDeckCode = (heroCardId: string): string => {\r\n// \tswitch (heroCardId) {\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1:\r\n// \t\t\treturn CardIds.IllidanStormrageHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2:\r\n// \t\t\treturn CardIds.RexxarHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3:\r\n// \t\t\treturn CardIds.UtherLightbringerHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4:\r\n// \t\t\treturn CardIds.AnduinWrynnHeroSkins;\r\n// \t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5:\r\n// \t\t\treturn CardIds.ValeeraSanguinarHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1:\r\n// \t\t\treturn CardIds.MalfurionStormrageHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2:\r\n// \t\t\treturn CardIds.JainaProudmooreHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3:\r\n// \t\t\treturn CardIds.ThrallHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4:\r\n// \t\t\treturn CardIds.GuldanHeroSkins;\r\n// \t\tcase CardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5:\r\n// \t\t\treturn CardIds.GarroshHellscreamHeroSkins;\r\n// \t\tdefault:\r\n// \t\t\treturn heroCardId;\r\n// \t}\r\n// };\r\n\r\n// Maybe it's possible to extract this from the game files or memory somehow?\r\n// Since it doesn't change often it's ok to maintain it manually, at least for now\r\nexport const duelsHeroConfigs = [\r\n\t{\r\n\t\thero: CardIds.StarStudentStelinaTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DEMONHUNTER],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.InfernalStrikeTavernBrawl,\r\n\t\t\tCardIds.OutlanderTavernBrawl,\r\n\t\t\tCardIds.IllidariStrikeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SummoningRitualTavernBrawlToken,\r\n\t\t\tCardIds.MoargOutcastTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheLegionTavernBrawl,\r\n\t\t\tCardIds.BindingChainsTavernBrawlToken,\r\n\t\t\tCardIds.BladeOfQuickeningTavernBrawlToken,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ForestWardenOmuTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DRUID],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NaturesGiftsTavernBrawl,\r\n\t\t\tCardIds.InvigoratingBloomTavernBrawl,\r\n\t\t\tCardIds.HarvestTimeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WardensInsightTavernBrawlToken,\r\n\t\t\tCardIds.MoonbeastTavernBrawlToken,\r\n\t\t\tCardIds.HerdingHornTavernBrawlToken,\r\n\t\t\tCardIds.MarvelousMyceliumTavernBrawlToken,\r\n\t\t\tCardIds.AwakenedAncientTavernBrawl,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ProfessorSlateTavernBrawl,\r\n\t\t// heroClasses: [CardClass.HUNTER],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SurvivalTrainingTavernBrawl,\r\n\t\t\tCardIds.DeathGamesTavernBrawl,\r\n\t\t\tCardIds.SavageSecretsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SlatesSyringeTavernBrawl,\r\n\t\t\tCardIds.BonecrusherTavernBrawlToken,\r\n\t\t\tCardIds.StalkingPrideTavernBrawlToken,\r\n\t\t\tCardIds.DeathstriderTavernBrawl,\r\n\t\t\tCardIds.CarrotOnAStickTavernBrawl,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MozakiMasterDuelistTavernBrawl,\r\n\t\t// heroClasses: [CardClass.MAGE],\r\n\t\theroPowers: [CardIds.WyrmBoltTavernBrawl, CardIds.SecretStudiesTavernBrawl, CardIds.FrostShardsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WandOfDuelingTavernBrawlToken,\r\n\t\t\tCardIds.ElementalLearningTavernBrawl,\r\n\t\t\tCardIds.InfiniteArcaneTavernBrawlToken,\r\n\t\t\tCardIds.EmbercasterTavernBrawl,\r\n\t\t\tCardIds.YoggTasticTastiesTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.TuralyonTheTenuredTavernBrawl,\r\n\t\t// heroClasses: [CardClass.PALADIN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FromGoldenLightTavernBrawl,\r\n\t\t\tCardIds.BringOnRecruitsTavernBrawl,\r\n\t\t\tCardIds.ModestAspirationsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RoyalGreatswordTavernBrawlToken,\r\n\t\t\tCardIds.MenAtArmsTavernBrawlToken,\r\n\t\t\tCardIds.DrocomurchanicasTavernBrawlToken,\r\n\t\t\tCardIds.FavoredRacerTavernBrawl,\r\n\t\t\tCardIds.HumbleBlessingsTavernBrawl,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MindrenderIlluciaTavernBrawl,\r\n\t\t// heroClasses: [CardClass.PRIEST],\r\n\t\theroPowers: [CardIds.ShadowMendTavernBrawl, CardIds.MindTetherTavernBrawl, CardIds.CallOfMadnessTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FracturedSpiritsTavernBrawlToken,\r\n\t\t\tCardIds.DropletOfInsanityTavernBrawlToken,\r\n\t\t\tCardIds.ScionOfTheDeepTavernBrawlToken,\r\n\t\t\tCardIds.ShadowWordVoidTavernBrawl,\r\n\t\t\tCardIds.HeraldOfTheScaledOnesTavernBrawl,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InfiltratorLilianTavernBrawl,\r\n\t\t// heroClasses: [CardClass.ROGUE],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.RoguishManeuversTavernBrawl,\r\n\t\t\tCardIds.ConnectionsTavernBrawl,\r\n\t\t\tCardIds.VileConcoctionTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.DeadlyWeapons101TavernBrawlToken,\r\n\t\t\tCardIds.NerubianPeddlerTavernBrawlToken,\r\n\t\t\tCardIds.AcquiredAlliesTavernBrawlToken,\r\n\t\t\tCardIds.AceInTheHoleTavernBrawlToken,\r\n\t\t\tCardIds.GreenTortollanShellTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InstructorFireheartTavernBrawlToken,\r\n\t\t// heroClasses: [CardClass.SHAMAN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.StormcatcherTavernBrawl,\r\n\t\t\tCardIds.TotemicPowerTavernBrawl,\r\n\t\t\tCardIds.FerociousFlurryTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ChaosStormTavernBrawl,\r\n\t\t\tCardIds.FluctuatingTotemTavernBrawlToken,\r\n\t\t\tCardIds.InvokeTheVoidTavernBrawlToken,\r\n\t\t\tCardIds.PayloadTotemSpecialistTavernBrawl,\r\n\t\t\tCardIds.TempestsFuryTavernBrawlToken,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ArchwitchWillowTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARLOCK],\r\n\t\theroPowers: [CardIds.DarkArtsTavernBrawl, CardIds.DemonBloodTavernBrawl, CardIds.SoulcialStudiesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ImpishAidTavernBrawl,\r\n\t\t\tCardIds.GiftOfTheOldGodsTavernBrawlToken,\r\n\t\t\tCardIds.KillmoxTheBanishedOneTavernBrawlToken,\r\n\t\t\tCardIds.Demonology101TavernBrawlToken,\r\n\t\t\tCardIds.DemonizerTavernBrawlToken,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RattlegoreTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARRIOR],\r\n\t\theroPowers: [CardIds.NoGutsNoGloryTavernBrawl, CardIds.BruisingTavernBrawl, CardIds.MagneticMinesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.AutoArmamentsTavernBrawlToken,\r\n\t\t\tCardIds.CollectorsIreTavernBrawlToken,\r\n\t\t\tCardIds.BrewsterTheBrutalTavernBrawlToken,\r\n\t\t\tCardIds.ScrapmetalDemolitionistTavernBrawl,\r\n\t\t\tCardIds.SpikedArmsTavernBrawlToken,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DrektharTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv1,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv2,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv3,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv4,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl_PVPDR_Hero_DrekTharv5,\r\n\t\t],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.WarmastersFrenzyTavernBrawl,\r\n\t\t\tCardIds.HarnessTheElementsTavernBrawl,\r\n\t\t\tCardIds.WarCommandsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ValorousDisplayTavernBrawlToken,\r\n\t\t\tCardIds.ElementalChaosTavernBrawlToken,\r\n\t\t\tCardIds.PactOfTheLichTavernBrawlToken,\r\n\t\t\tCardIds.MagisterUnchainedTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheHeartTavernBrawlToken,\r\n\t\t\tCardIds.ForTheHordeTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.VanndarStormpikeTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv1,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv2,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv3,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv4,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl_PVPDR_Hero_Vanndarv5,\r\n\t\t],\r\n\t\theroPowers: [CardIds.PromoteTavernBrawl, CardIds.SendInTheScoutTavernBrawl, CardIds.BattleTacticsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ForgeInLightTavernBrawlToken,\r\n\t\t\tCardIds.SpymastersGambitTavernBrawlToken,\r\n\t\t\tCardIds.StalkersSuppliesTavernBrawlToken,\r\n\t\t\tCardIds.RendingAmbushTavernBrawlToken,\r\n\t\t\tCardIds.DevoutBlessingsTavernBrawlToken,\r\n\t\t\tCardIds.ForTheAllianceTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RenoJacksonTavernBrawl_PVPDR_Hero_Reno,\r\n\t\t// heroClasses: [CardClass.MAGE, CardClass.ROGUE],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.AmateurMageTavernBrawl,\r\n\t\t\tCardIds.RelicologistTavernBrawl,\r\n\t\t\tCardIds.ArcaneCraftinessTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RenosLuckyHatTavernBrawl,\r\n\t\t\tCardIds.RenosCraftyLassoTavernBrawl,\r\n\t\t\tCardIds.RenosMagicalTorchTavernBrawl,\r\n\t\t\tCardIds.SrTombDiverTavernBrawl,\r\n\t\t\tCardIds.LeiFlamepawTavernBrawl,\r\n\t\t\tCardIds.TheGatlingWandTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SirFinleyTavernBrawl_PVPDR_Hero_Finley,\r\n\t\t// heroClasses: [CardClass.PALADIN, CardClass.SHAMAN],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NewRecruitsTavernBrawl,\r\n\t\t\tCardIds.BubbleBlowerTavernBrawl,\r\n\t\t\tCardIds.PowerUpTavernBrawl_PVPDR_Finley_HP3,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FinleysPithHelmetTavernBrawl,\r\n\t\t\tCardIds.MaxwellMightySteedTavernBrawl,\r\n\t\t\tCardIds.TruesilverLanceTavernBrawl,\r\n\t\t\tCardIds.SrScoutTavernBrawl,\r\n\t\t\tCardIds.KarlTheLostTavernBrawl,\r\n\t\t\tCardIds.ScalesOfJusticeTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.EliseStarseekerTavernBrawl_PVPDR_Hero_Elise,\r\n\t\t// heroClasses: [CardClass.DRUID, CardClass.PRIEST],\r\n\t\theroPowers: [CardIds.ElisesMightTavernBrawl, CardIds.DruidicTeachingTavernBrawl, CardIds.StarseekerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.StarseekersToolsTavernBrawl,\r\n\t\t\tCardIds.ElisesMacheteTavernBrawl,\r\n\t\t\tCardIds.AddarahTavernBrawl,\r\n\t\t\tCardIds.SrNavigatorTavernBrawl,\r\n\t\t\tCardIds.AcademicResearchTavernBrawl,\r\n\t\t\tCardIds.StaffOfRenewalTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.BrannBronzebeardTavernBrawl_PVPDR_Hero_Brann,\r\n\t\t// heroClasses: [CardClass.HUNTER, CardClass.WARRIOR],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SpreadShotTavernBrawl,\r\n\t\t\tCardIds.WellEquippedTavernBrawl_PVPDR_Brann_HP2,\r\n\t\t\tCardIds.DinoTrackingTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.OlFaithfulTavernBrawl,\r\n\t\t\tCardIds.BrannsSaddleTavernBrawl,\r\n\t\t\tCardIds.TitanForgedGrapnelTavernBrawl,\r\n\t\t\tCardIds.SrExcavatorTavernBrawl,\r\n\t\t\tCardIds.FloSlatebrandTavernBrawl,\r\n\t\t\tCardIds.BrannsEpicEggTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DariusCrowleyTavernBrawl,\r\n\t\t// heroClasses: [CardClass.WARRIOR],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FireTavernBrawl_PVPDR_Darius_P1,\r\n\t\t\tCardIds.FireAwayTavernBrawl,\r\n\t\t\tCardIds.FireAtTheeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SafeHarborTavernBrawl,\r\n\t\t\tCardIds.GrizzledReinforcementTavernBrawl,\r\n\t\t\tCardIds.TuskarrRaiderTavernBrawl,\r\n\t\t\tCardIds.SeabreakerGoliathTavernBrawl,\r\n\t\t\tCardIds.DeckSwabbieTavernBrawl,\r\n\t\t\tCardIds.DraconicMunitionTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SaiShadestormTavernBrawl,\r\n\t\t// heroClasses: [CardClass.DEATHKNIGHT],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.GhoulBlitzTavernBrawl,\r\n\t\t\tCardIds.GatheringStormTavernBrawl,\r\n\t\t\tCardIds.LichborneMightTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.GluthTavernBrawl_PVPDR_Sai_T1,\r\n\t\t\tCardIds.GlaciaxeTavernBrawl,\r\n\t\t\tCardIds.RemembranceOfIceTavernBrawl,\r\n\t\t\tCardIds.UnholyEmbraceTavernBrawl,\r\n\t\t\tCardIds.GluthSicleTavernBrawl,\r\n\t\t\tCardIds.InexorableGhoulTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ScarletLeafdancerTavernBrawlToken,\r\n\t\t// heroClasses: [CardClass.DEATHKNIGHT],\r\n\t\theroPowers: [CardIds.BloodParasiteTavernBrawl, CardIds.HematologyTavernBrawl, CardIds.ScourgingTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RunedSoulbladeTavernBrawl,\r\n\t\t\tCardIds.ScourgeStrikeTavernBrawl,\r\n\t\t\tCardIds.CrimsonTavernBrawl,\r\n\t\t\tCardIds.IronweaveBloodletterTavernBrawl,\r\n\t\t\tCardIds.GreatswordOfTheEbonBladeTavernBrawl,\r\n\t\t\tCardIds.ContagionConcoctionTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DiabloTavernBrawl_PVPDR_Hero_Diablo,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.DoomChargeTavernBrawl,\r\n\t\t\tCardIds.PrimalPowerTavernBrawl,\r\n\t\t\tCardIds.DemonicTransformationTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ClawsOfTerrorTavernBrawlToken,\r\n\t\t\tCardIds.FireStompTavernBrawlToken,\r\n\t\t\tCardIds.ApocalypseTavernBrawlToken,\r\n\t\t\tCardIds.SoulstoneTrapTavernBrawlToken,\r\n\t\t\tCardIds.HornsOfFlameTavernBrawlToken,\r\n\t\t\tCardIds.JourneyToTheEastTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport const allDuelsSignatureTreasures = duelsHeroConfigs.flatMap((info) => info.signatureTreasures);\r\n\r\nexport const allDuelsHeroes = duelsHeroConfigs.map((conf) => conf.hero);\r\nexport const allDuelsHeroesExtended = duelsHeroConfigs.flatMap((conf) => [conf.hero, ...(conf.alternateHeroes ?? [])]);\r\n\r\nexport const isPassive = (\r\n\tcardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): boolean => {\r\n\treturn (\r\n\t\tallDuelsPassiveTreasures.includes(cardId as CardIds) ||\r\n\t\tallCards.getCard(cardId)?.mechanics?.includes(GameTag[GameTag.DUNGEON_PASSIVE_BUFF])\r\n\t);\r\n};\r\n\r\n// https://hearthstone.fandom.com/wiki/Duels#Current_season\r\nexport const duelsTreasureRank = (cardId: string): number => {\r\n\tif (!cardId) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tif (!allDuelsTreasureCardIds.includes(cardId as CardIds)) {\r\n\t\tconsole.error('Incorrect config for duels card IDs?', cardId);\r\n\t\treturn 0;\r\n\t}\r\n\tif (duelsPassivePool2.includes(cardId as CardIds) || duelsActivePool2.includes(cardId as CardIds)) {\r\n\t\treturn 2;\r\n\t} else if (\r\n\t\tduelsPassivePool2UltraRare.includes(cardId as CardIds) ||\r\n\t\tduelsActivePool2UltraRare.includes(cardId as CardIds)\r\n\t) {\r\n\t\treturn 3;\r\n\t}\r\n\treturn 1;\r\n};\r\n\r\nexport const isSignatureTreasure = (cardId: string): boolean => {\r\n\treturn allDuelsSignatureTreasures.includes(cardId as CardIds);\r\n};\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/reference-data",
3
- "version": "1.0.106",
3
+ "version": "1.0.107",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",