@firestone-hs/reference-data 1.0.144 → 1.0.146
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/card-ids.d.ts +121 -0
- package/dist/card-ids.js.map +1 -1
- package/dist/enums/booster-type.d.ts +1 -0
- package/dist/enums/booster-type.js +1 -0
- package/dist/enums/booster-type.js.map +1 -1
- package/dist/enums/card-set.d.ts +1 -0
- package/dist/enums/card-set.js +1 -0
- package/dist/enums/card-set.js.map +1 -1
- package/dist/enums/game-tags.d.ts +1 -0
- package/dist/enums/game-tags.js +1 -0
- package/dist/enums/game-tags.js.map +1 -1
- package/dist/enums/scenario-id.d.ts +34 -1
- package/dist/enums/scenario-id.js +33 -0
- package/dist/enums/scenario-id.js.map +1 -1
- package/dist/enums/spell-school.d.ts +2 -1
- package/dist/enums/spell-school.js +1 -0
- package/dist/enums/spell-school.js.map +1 -1
- package/dist/models/reference-cards/reference-sets.d.ts +1 -1
- package/dist/models/reference-cards/reference-sets.js +5 -0
- package/dist/models/reference-cards/reference-sets.js.map +1 -1
- package/dist/models/reference-cards/related-cards-data.js.map +1 -1
- package/dist/services/all-cards.service.js.map +1 -1
- package/dist/services/bgs-utils.js +2 -0
- package/dist/services/bgs-utils.js.map +1 -1
- package/dist/services/collection-utils.js +4 -0
- package/dist/services/collection-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"all-cards.service.js","sourceRoot":"","sources":["../../src/services/all-cards.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\nimport { ReferenceCard } from '../models/reference-cards/reference-card';\r\nimport { httpWithRetries } from './utils';\r\n\r\nconst CARDS_CDN_URL = 'https://static.firestoneapp.com/data/cards';\r\n\r\nexport class AllCardsService {\r\n\tprivate cache: { [cardId: string]: ReferenceCard } = {};\r\n\tprivate cacheDbfId: { [cardDbfId: string]: ReferenceCard } = {};\r\n\r\n\tconstructor() {\r\n\t\t// We don't call it in the constructor because we want the app to be in control\r\n\t\t// of how they load the cards, and for it to be aware of when cards have been loaded\r\n\t\t// this.retrieveAllCards();\r\n\t}\r\n\r\n\t// We keep this synchronous because we ensure, in the game init pipeline, that loading cards\r\n\t// is the first thing we do\r\n\tpublic getCard(id: string | number, errorWhenUndefined = true): ReferenceCard {\r\n\t\treturn this.cache[id] ?? this.cacheDbfId[id] ?? ({} as ReferenceCard);\r\n\t}\r\n\r\n\tpublic getMultipleCards(ids: (string | number)[]): ReferenceCard[] {\r\n\t\treturn ids.map((id) => this.getCard(id));\r\n\t}\r\n\r\n\t/** @deprecated use getCard instead */\r\n\tpublic getCardFromDbfId(dbfId: number): ReferenceCard {\r\n\t\treturn this.cacheDbfId[dbfId] ?? ({} as ReferenceCard);\r\n\t}\r\n\r\n\t/** @deprecated use getMultipleCards instead */\r\n\tpublic getCardsFromDbfIds(dbfIds: number[]): ReferenceCard[] {\r\n\t\treturn dbfIds.map((dbfId) => this.getCardFromDbfId(dbfId));\r\n\t}\r\n\r\n\tpublic getCards(): ReferenceCard[] {\r\n\t\treturn Object.values(this.cache);\r\n\t}\r\n\r\n\tpublic async initializeCardsDb(version = '', cardsFile = 'cards_enUS.gz.json', useLocal = false): Promise<void> {\r\n\t\t// console.debug('[all-cards] asked to retrieve cards from CDN', version, new Error().stack);\r\n\t\treturn new Promise<void>(async (resolve, reject) => {\r\n\t\t\tlet allCards: readonly ReferenceCard[] = Object.values(this.cache);\r\n\t\t\tif (!!allCards?.length) {\r\n\t\t\t\t// console.debug('[all-cards] already loaded all cards');\r\n\t\t\t\tresolve();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.cache = {};\r\n\t\t\tthis.cacheDbfId = {};\r\n\t\t\tconst baseUrl = useLocal ? '.' : CARDS_CDN_URL;\r\n\t\t\tversion = useLocal ? `${version}${Math.random()}` : version;\r\n\t\t\tallCards = await loadCards(baseUrl, cardsFile, version);\r\n\t\t\tif (!allCards?.length) {\r\n\t\t\t\tconsole.error('[all-cards] could not load cards', baseUrl, version, allCards);\r\n\t\t\t} else {\r\n\t\t\t\t// console.log('[all-cards] retrieved all cards', allCards?.length);\r\n\t\t\t\tfor (const card of allCards) {\r\n\t\t\t\t\tif (card.id) {\r\n\t\t\t\t\t\tthis.cache[card.id] = card;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (card.dbfId) {\r\n\t\t\t\t\t\tthis.cacheDbfId[card.dbfId] = card;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getRootCardId(cardId: string): string {\r\n\t\tconst dbfId = this.getCard(cardId)?.deckDuplicateDbfId ?? this.getCard(cardId)?.dbfId;\r\n\t\treturn this.getCard(dbfId)?.id;\r\n\t}\r\n}\r\n\r\nconst loadCards = async (baseUrl: string, cardsFile: string, version: string): Promise<readonly ReferenceCard[]> => {\r\n\tconst versionString = !!version?.length ? `?v=${version}` : '';\r\n\tconst url = `${baseUrl}/${cardsFile}${versionString}`;\r\n\tlet cardsStr: string = await httpWithRetries(url, 1);\r\n\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\treturn JSON.parse(cardsStr) as readonly ReferenceCard[];\r\n\t}\r\n\r\n\tconsole.warn('[all-cards] could not load cards, defaulting to split');\r\n\tconst numberOfSplits = 4;\r\n\tconst result: ReferenceCard[] = [];\r\n\tfor (let i = 0; i < numberOfSplits; i++) {\r\n\t\tconst splitUrl = `${baseUrl}/split/${cardsFile}.${i}${versionString}`;\r\n\t\tconsole.log('[all-cards] loading split', splitUrl);\r\n\t\tcardsStr = await httpWithRetries(splitUrl, 1);\r\n\t\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\t\tconst splitCards: readonly ReferenceCard[] = JSON.parse(cardsStr);\r\n\t\t\tconsole.log('loaded split cards', splitCards?.length);\r\n\t\t\tresult.push(...splitCards);\r\n\t\t}\r\n\t}\r\n\tif (!!result?.length) {\r\n\t\treturn result;\r\n\t}\r\n\r\n\tconst urlNoAudio = `${baseUrl}/no_audio/${cardsFile}?v=${version}`;\r\n\tconsole.warn('[all-cards] could not load cards, defaulting to no_audio', urlNoAudio);\r\n\tcardsStr = await httpWithRetries(urlNoAudio, 1);\r\n\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\treturn JSON.parse(cardsStr) as readonly ReferenceCard[];\r\n\t}\r\n\treturn [];\r\n};\r\n\r\n// The spellstones are present in the AI decklist in their basic version\r\n// However, if the AI plays the spellstone's upgraded version, we need to remove\r\n// the basic one from the decklist\r\nexport const getBaseCardId = (cardId: string): string => {\r\n\tif (!cardId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tswitch (cardId) {\r\n\t\t// The spellstones\r\n\t\tcase 'LOOT_103t1':\r\n\t\tcase 'LOOT_103t2':\r\n\t\t\treturn 'LOOT_103';\r\n\t\tcase 'LOOT_043t2':\r\n\t\tcase 'LOOT_043t3':\r\n\t\t\treturn 'LOOT_043';\r\n\t\tcase 'LOOT_051t1':\r\n\t\tcase 'LOOT_051t2':\r\n\t\t\treturn 'LOOT_051';\r\n\t\tcase 'LOOT_064t1':\r\n\t\tcase 'LOOT_064t2':\r\n\t\t\treturn 'LOOT_064';\r\n\t\tcase 'LOOT_080t2':\r\n\t\tcase 'LOOT_080t3':\r\n\t\t\treturn 'LOOT_080';\r\n\t\tcase 'LOOT_091t1':\r\n\t\tcase 'LOOT_091t2':\r\n\t\t\treturn 'LOOT_091';\r\n\t\tcase 'LOOT_203t2':\r\n\t\tcase 'LOOT_203t3':\r\n\t\t\treturn 'LOOT_203';\r\n\t\tcase 'LOOT_503t':\r\n\t\tcase 'LOOT_503t2':\r\n\t\t\treturn 'LOOT_503';\r\n\t\tcase 'LOOT_507t':\r\n\t\tcase 'LOOT_507t2':\r\n\t\t\treturn 'LOOT_507';\r\n\t\tcase 'FB_Champs_LOOT_080t2':\r\n\t\tcase 'FB_Champs_LOOT_080t3':\r\n\t\t\treturn 'FB_Champs_LOOT_080';\r\n\t\t// The \"unidentified\" spells\r\n\t\tcase 'LOOT_278t1':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t2':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t3':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t4':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_285t':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t2':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t3':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t4':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_286t1':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t2':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t3':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t4':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'DAL_366t1':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t2':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t3':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t4':\r\n\t\t\treturn 'DAL_366';\r\n\t\t// Galakrond\r\n\t\tcase CardIds.GalakrondTheTempest_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheTempest_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheTempest;\r\n\t\tcase CardIds.GalakrondTheWretched_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheWretched_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheWretched;\r\n\t\tcase CardIds.GalakrondTheUnspeakable_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheUnspeakable_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheUnspeakable;\r\n\t\tcase CardIds.GalakrondTheNightmare_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheNightmare_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheNightmare;\r\n\t\tcase CardIds.GalakrondTheUnbreakable_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheUnbreakable_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheUnbreakable;\r\n\t\t// Corrupted\r\n\t\tcase 'DMF_054t':\r\n\t\t\treturn 'DMF_054';\r\n\t\tcase 'DMF_061t':\r\n\t\t\treturn 'DMF_061';\r\n\t\tcase 'DMF_064t':\r\n\t\t\treturn 'DMF_064';\r\n\t\tcase 'DMF_073t':\r\n\t\t\treturn 'DMF_073';\r\n\t\tcase 'DMF_078t':\r\n\t\t\treturn 'DMF_078';\r\n\t\tcase 'DMF_080t':\r\n\t\t\treturn 'DMF_080';\r\n\t\tcase 'DMF_082t':\r\n\t\t\treturn 'DMF_082';\r\n\t\tcase 'DMF_083t':\r\n\t\t\treturn 'DMF_083';\r\n\t\tcase 'DMF_090t':\r\n\t\t\treturn 'DMF_090';\r\n\t\tcase 'DMF_101t':\r\n\t\t\treturn 'DMF_101';\r\n\t\tcase 'DMF_105t':\r\n\t\t\treturn 'DMF_105';\r\n\t\tcase 'DMF_117t':\r\n\t\t\treturn 'DMF_117';\r\n\t\tcase 'DMF_117t2':\r\n\t\t\treturn 'DMF_117';\r\n\t\tcase 'DMF_118t':\r\n\t\t\treturn 'DMF_118';\r\n\t\tcase 'DMF_124t':\r\n\t\t\treturn 'DMF_124';\r\n\t\tcase 'DMF_163t':\r\n\t\t\treturn 'DMF_163';\r\n\t\tcase 'DMF_174t':\r\n\t\t\treturn 'DMF_174';\r\n\t\tcase 'DMF_184t':\r\n\t\t\treturn 'DMF_184';\r\n\t\tcase 'DMF_186a':\r\n\t\t\treturn 'DMF_186';\r\n\t\tcase 'DMF_244t':\r\n\t\t\treturn 'DMF_244';\r\n\t\tcase 'DMF_247t':\r\n\t\t\treturn 'DMF_247';\r\n\t\tcase 'DMF_248t':\r\n\t\t\treturn 'DMF_248';\r\n\t\tcase 'DMF_517a':\r\n\t\t\treturn 'DMF_517';\r\n\t\tcase 'DMF_526a':\r\n\t\t\treturn 'DMF_526';\r\n\t\tcase 'DMF_701t':\r\n\t\t\treturn 'DMF_701';\r\n\t\tcase 'DMF_703t':\r\n\t\t\treturn 'DMF_703';\r\n\t\tcase 'DMF_730t':\r\n\t\t\treturn 'DMF_730';\r\n\t\tcase 'DMF_526a':\r\n\t\t\treturn 'DMF_526';\r\n\t\tcase CardIds.DreamingDrake_DreamingDrakeToken:\r\n\t\t\treturn CardIds.DreamingDrake;\r\n\t\tcase CardIds.LibramOfJudgment_LibramOfJudgmentToken:\r\n\t\t\treturn CardIds.LibramOfJudgment;\r\n\t\tcase CardIds.LuckysoulHoarder_LuckysoulHoarderToken:\r\n\t\t\treturn CardIds.LuckysoulHoarder;\r\n\t\tcase CardIds.NitroboostPoison_NitroboostPoisonToken:\r\n\t\t\treturn CardIds.NitroboostPoison;\r\n\t\t// The \"improve during run\" cards in Duels\r\n\t\t// Upgradable ranked spells\r\n\t\tcase CardIds.TameBeastRank1_TameBeastRank2Token:\r\n\t\tcase CardIds.TameBeastRank1_TameBeastRank3Token:\r\n\t\t\treturn CardIds.TameBeastRank1;\r\n\t\tcase CardIds.ChainLightningRank1_ChainLightningRank2Token:\r\n\t\tcase CardIds.ChainLightningRank1_ChainLightningRank3Token:\r\n\t\t\treturn CardIds.ChainLightningRank1;\r\n\t\tcase CardIds.FlurryRank1_FlurryRank2Token:\r\n\t\tcase CardIds.FlurryRank1_FlurryRank3Token:\r\n\t\t\treturn CardIds.FlurryRank1;\r\n\t\tcase CardIds.CondemnRank1_CondemnRank2Token:\r\n\t\tcase CardIds.CondemnRank1_CondemnRank3Token:\r\n\t\t\treturn CardIds.CondemnRank1;\r\n\t\tcase CardIds.WickedStabRank1_WickedStabRank2Token:\r\n\t\tcase CardIds.WickedStabRank1_WickedStabRank3Token:\r\n\t\t\treturn CardIds.WickedStabRank1;\r\n\t\tcase CardIds.LivingSeedRank1_LivingSeedRank2Token:\r\n\t\tcase CardIds.LivingSeedRank1_LivingSeedRank3Token:\r\n\t\t\treturn CardIds.LivingSeedRank1;\r\n\t\tcase CardIds.ConvictionRank1_ConvictionRank2Token:\r\n\t\tcase CardIds.ConvictionRank1_ConvictionRank3Token:\r\n\t\t\treturn CardIds.ConvictionRank1;\r\n\t\tcase CardIds.ConditioningRank1_ConditioningRank2Token:\r\n\t\tcase CardIds.ConditioningRank1_ConditioningRank3Token:\r\n\t\t\treturn CardIds.ConditioningRank1;\r\n\t\tcase CardIds.FuryRank1_FuryRank2Token:\r\n\t\tcase CardIds.FuryRank1_FuryRank3Token:\r\n\t\t\treturn CardIds.FuryRank1;\r\n\t\tcase CardIds.ImpSwarmRank1_ImpSwarmRank2Token:\r\n\t\tcase CardIds.ImpSwarmRank1_ImpSwarmRank3Token:\r\n\t\t\treturn CardIds.ImpSwarmRank1;\r\n\r\n\t\t// Infused\r\n\t\tcase CardIds.MischievousImp_MischievousImpToken:\r\n\t\t\treturn CardIds.MischievousImp;\r\n\t\tcase CardIds.ImpKingRafaam_ImpKingRafaamToken:\r\n\t\t\treturn CardIds.ImpKingRafaam_REV_789;\r\n\t\tcase CardIds.StonebornAccuser_StonebornAccuserToken:\r\n\t\t\treturn CardIds.StonebornAccuser;\r\n\t\tcase CardIds.Murlocula_MurloculaToken:\r\n\t\t\treturn CardIds.Murlocula;\r\n\t\tcase CardIds.FamishedFool_FamishedFoolToken:\r\n\t\t\treturn CardIds.FamishedFool;\r\n\t\tcase CardIds.SinfueledGolem_SinfueledGolemToken:\r\n\t\t\treturn CardIds.SinfueledGolem;\r\n\t\tcase CardIds.InsatiableDevourer_InsatiableDevourerToken:\r\n\t\t\treturn CardIds.InsatiableDevourer;\r\n\t\tcase CardIds.SireDenathrius_SireDenathriusToken:\r\n\t\t\treturn CardIds.SireDenathrius_REV_906;\r\n\t\tcase CardIds.PriestOfTheDeceased_PriestOfTheDeceasedToken:\r\n\t\t\treturn CardIds.PriestOfTheDeceased;\r\n\t\tcase CardIds.ArtificerXymox_ArtificerXymoxToken:\r\n\t\t\treturn CardIds.ArtificerXymox_REV_937;\r\n\t\tcase CardIds.BuffetBiggun_BuffetBiggunToken:\r\n\t\t\treturn CardIds.BuffetBiggun;\r\n\t\tcase CardIds.ImbuedAxe_ImbuedAxeToken:\r\n\t\t\treturn CardIds.ImbuedAxe;\r\n\t\tcase CardIds.CleanTheScene_CleanTheSceneToken:\r\n\t\t\treturn CardIds.CleanTheScene;\r\n\t\tcase CardIds.ConvincingDisguise_ConvincingDisguiseToken:\r\n\t\t\treturn CardIds.ConvincingDisguise;\r\n\t\tcase CardIds.PlotOfSin_PlotOfSinToken:\r\n\t\t\treturn CardIds.PlotOfSin;\r\n\t\tcase CardIds.AllFelBreaksLoose_AllFelBreaksLooseToken:\r\n\t\t\treturn CardIds.AllFelBreaksLoose;\r\n\t\tcase CardIds.Shadehound_ShadehoundToken:\r\n\t\t\treturn CardIds.Shadehound;\r\n\t\tcase CardIds.TotemicEvidence_TotemicEvidenceToken:\r\n\t\t\treturn CardIds.TotemicEvidence;\r\n\t\tcase CardIds.SylvanasTheAccused_SylvanasTheAccusedToken:\r\n\t\t\treturn CardIds.SylvanasTheAccused;\r\n\r\n\t\t// Remixed\r\n\t\tcase CardIds.RemixedDispenseOBot_ChillingDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MerchDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MoneyDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MysteryDispenseOBotToken:\r\n\t\t\treturn CardIds.RemixedDispenseOBot;\r\n\t\tcase CardIds.RemixedRhapsody_AngstyRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_ResoundingRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_EmotionalRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_WailingRhapsodyToken:\r\n\t\t\treturn CardIds.RemixedRhapsody;\r\n\t\tcase CardIds.RemixedTotemcarver_LoudTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_BluesyTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_BlazingTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_KaraokeTotemcarverToken:\r\n\t\t\treturn CardIds.RemixedTotemcarver;\r\n\t\tcase CardIds.RemixedMusician_CathedralMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_TropicalMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_RomanticMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_NoiseMusicianToken:\r\n\t\t\treturn CardIds.RemixedMusician;\r\n\t\tcase CardIds.RemixedTuningFork_SharpenedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_ReinforcedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_CurvedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_BackupTuningForkToken:\r\n\t\t\treturn CardIds.RemixedTuningFork;\r\n\t\t// Forged\r\n\t\tcase CardIds.BellowingFlames_BellowingFlamesToken:\r\n\t\t\treturn CardIds.BellowingFlames;\r\n\t\tcase CardIds.ChampionOfStorms_StormCycloneToken_TTN_801t2:\r\n\t\t\treturn CardIds.ChampionOfStorms_StormCycloneToken_TTN_801t1;\r\n\t\tcase CardIds.CreationProtocol_CreationProtocolToken:\r\n\t\t\treturn CardIds.CreationProtocol;\r\n\t\tcase CardIds.DiscipleOfSargeras_DiscipleOfSargerasToken:\r\n\t\t\treturn CardIds.DiscipleOfSargeras;\r\n\t\tcase CardIds.EmbraceOfNature_EmbraceOfNatureToken:\r\n\t\t\treturn CardIds.EmbraceOfNature;\r\n\t\tcase CardIds.Eulogizer_EulogizerToken:\r\n\t\t\treturn CardIds.Eulogizer;\r\n\t\tcase CardIds.LabConstructor_LabConstructorToken:\r\n\t\t\treturn CardIds.LabConstructor;\r\n\t\tcase CardIds.MechagnomeGuide_MechagnomeGuideToken:\r\n\t\t\treturn CardIds.MechagnomeGuide;\r\n\t\tcase CardIds.MoltenRune_MoltenRuneToken:\r\n\t\t\treturn CardIds.MoltenRune;\r\n\t\tcase CardIds.StormGiant_StormGiantToken:\r\n\t\t\treturn CardIds.StormGiant;\r\n\t\tcase CardIds.TitanforgedTraps_TitanforgedTrapsToken:\r\n\t\t\treturn CardIds.TitanforgedTraps;\r\n\t\tcase CardIds.TyrsTears_TyrsTearsToken:\r\n\t\t\treturn CardIds.TyrsTears;\r\n\t\tcase CardIds.WatcherOfTheSun_WatcherOfTheSunToken:\r\n\t\t\treturn CardIds.WatcherOfTheSun;\r\n\t\tcase CardIds.WeightOfTheWorld_WeightOfTheWorldToken:\r\n\t\t\treturn CardIds.WeightOfTheWorld;\r\n\t\tcase CardIds.Xb488Disposalbot_Xb488DisposalbotToken:\r\n\t\t\treturn CardIds.Xb488Disposalbot;\r\n\t\tcase CardIds.MuscleOTron_MuscleOTronToken_YOG_525t:\r\n\t\t\treturn CardIds.MuscleOTron_YOG_525;\r\n\t\tcase CardIds.Sanitize_SanitizeToken_YOG_502t:\r\n\t\t\treturn CardIds.Sanitize_YOG_502;\r\n\t\t// Bonus effect\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t1:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t2:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t3:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t4:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t5:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t6:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t7:\r\n\t\t\treturn CardIds.DroneDeconstructor;\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t1:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t2:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t3:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t4:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t5:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t6:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t7:\r\n\t\t\treturn CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t;\r\n\t\t// Transforms in hand\r\n\t\tcase CardIds.ForestSeedlings_ForestBlossomsToken:\r\n\t\t\treturn CardIds.ForestSeedlings;\r\n\t\tcase CardIds.FrostLotusSeedling_FrostLotusBlossomToken:\r\n\t\t\treturn CardIds.FrostLotusSeedling;\r\n\t}\r\n\r\n\t// Transfer Student should be handled on a case by case basis\r\n\tif (cardId.startsWith(CardIds.TransferStudent)) {\r\n\t\treturn CardIds.TransferStudent;\r\n\t}\r\n\r\n\treturn cardId;\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"all-cards.service.js","sourceRoot":"","sources":["../../src/services/all-cards.service.ts"],"names":[],"mappings":";;;AAEA,mCAA0C;AAE1C,MAAM,aAAa,GAAG,4CAA4C,CAAC;AAEnE,MAAa,eAAe;IAI3B;QAHQ,UAAK,GAAwC,EAAE,CAAC;QAChD,eAAU,GAA2C,EAAE,CAAC;IAMhE,CAAC;IAIM,OAAO,CAAC,EAAmB,EAAE,kBAAkB,GAAG,IAAI;;QAC5D,OAAO,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,mCAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,mCAAK,EAAoB,CAAC;IACvE,CAAC;IAEM,gBAAgB,CAAC,GAAwB;QAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAGM,gBAAgB,CAAC,KAAa;;QACpC,OAAO,MAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mCAAK,EAAoB,CAAC;IACxD,CAAC;IAGM,kBAAkB,CAAC,MAAgB;QACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,QAAQ;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAAO,GAAG,EAAE,EAAE,SAAS,GAAG,oBAAoB,EAAE,QAAQ,GAAG,KAAK;QAE9F,OAAO,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,QAAQ,GAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE;gBAEvB,OAAO,EAAE,CAAC;gBACV,OAAO;aACP;YAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/C,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aAC9E;iBAAM;gBAEN,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,EAAE,EAAE;wBACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;qBAC3B;oBACD,IAAI,IAAI,CAAC,KAAK,EAAE;wBACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;qBACnC;iBACD;aACD;YACD,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACJ,CAAC;IAEM,aAAa,CAAC,MAAc;;QAClC,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0CAAE,kBAAkB,mCAAI,MAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAC;QACtF,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0CAAE,EAAE,CAAC;IAChC,CAAC;CACD;AAtED,0CAsEC;AAED,MAAM,SAAS,GAAG,KAAK,EAAE,OAAe,EAAE,SAAiB,EAAE,OAAe,EAAqC,EAAE;IAClH,MAAM,aAAa,GAAG,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;IACtD,IAAI,QAAQ,GAAW,MAAM,uBAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA6B,CAAC;KACxD;IAED,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,CAAC,CAAC;IACzB,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,GAAG,OAAO,UAAU,SAAS,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;QACnD,QAAQ,GAAG,MAAM,uBAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACpD,MAAM,UAAU,GAA6B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;SAC3B;KACD;IACD,IAAI,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,EAAE;QACrB,OAAO,MAAM,CAAC;KACd;IAED,MAAM,UAAU,GAAG,GAAG,OAAO,aAAa,SAAS,MAAM,OAAO,EAAE,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,UAAU,CAAC,CAAC;IACrF,QAAQ,GAAG,MAAM,uBAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA6B,CAAC;KACxD;IACD,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAKK,MAAM,aAAa,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,IAAI,CAAC,MAAM,EAAE;QACZ,OAAO,IAAI,CAAC;KACZ;IAED,QAAQ,MAAM,EAAE;QAEf,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB;YAC1B,OAAO,oBAAoB,CAAC;QAkB7B,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,WAAW;YACf,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,YAAY;YAChB,OAAO,UAAU,CAAC;QACnB,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAElB,iBAA6D;QAC7D;YACC,iBAAmC;QACpC,iBAA8D;QAC9D;YACC,iBAAoC;QACrC,iBAAiE;QACjE;YACC,iBAAuC;QACxC,iBAA+D;QAC/D;YACC,iBAAqC;QACtC,iBAAiE;QACjE;YACC,iBAAuC;QAExC,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,WAAW;YACf,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,SAAS,CAAC;QAClB;YACC,iBAA6B;QAC9B;YACC,iBAAgC;QACjC;YACC,iBAAgC;QACjC;YACC,iBAAgC;QAGjC,gBAAgD;QAChD;YACC,iBAA8B;QAC/B,gBAA0D;QAC1D;YACC,iBAAmC;QACpC,gBAA0C;QAC1C;YACC,iBAA2B;QAC5B,gBAA4C;QAC5C;YACC,iBAA4B;QAC7B,gBAAkD;QAClD;YACC,iBAA+B;QAChC,gBAAkD;QAClD;YACC,iBAA+B;QAChC,gBAAkD;QAClD;YACC,iBAA+B;QAChC,gBAAsD;QACtD;YACC,iBAAiC;QAClC,gBAAsC;QACtC;YACC,iBAAyB;QAC1B,gBAA8C;QAC9C;YACC,iBAA6B;QAG9B;YACC,iBAA8B;QAC/B;YACC,iBAAqC;QACtC;YACC,iBAAgC;QACjC;YACC,iBAAyB;QAC1B;YACC,iBAA4B;QAC7B;YACC,iBAA8B;QAC/B;YACC,iBAAkC;QACnC;YACC,iBAAsC;QACvC;YACC,iBAAmC;QACpC;YACC,iBAAsC;QACvC;YACC,iBAA4B;QAC7B;YACC,iBAAyB;QAC1B;YACC,iBAA6B;QAC9B;YACC,iBAAkC;QACnC;YACC,iBAAyB;QAC1B;YACC,iBAAiC;QAClC;YACC,iBAA0B;QAC3B;YACC,iBAA+B;QAChC;YACC,iBAAkC;QAGnC,gBAA2D;QAC3D,iBAAwD;QACxD,iBAAwD;QACxD;YACC,iBAAmC;QACpC,gBAAiD;QACjD,iBAAqD;QACrD,iBAAoD;QACpD;YACC,iBAA+B;QAChC,gBAAqD;QACrD,iBAAuD;QACvD,iBAAwD;QACxD;YACC,iBAAkC;QACnC,gBAAoD;QACpD,iBAAmD;QACnD,iBAAmD;QACnD;YACC,iBAA+B;QAChC,gBAAwD;QACxD,iBAAyD;QACzD,iBAAqD;QACrD;YACC,iBAAiC;QAElC;YACC,iBAA+B;QAChC;YACC,mBAA4D;QAC7D;YACC,iBAAgC;QACjC;YACC,iBAAkC;QACnC;YACC,iBAA+B;QAChC;YACC,iBAAyB;QAC1B;YACC,iBAA8B;QAC/B;YACC,iBAA+B;QAChC;YACC,iBAA0B;QAC3B;YACC,iBAA0B;QAC3B;YACC,iBAAgC;QACjC;YACC,iBAAyB;QAC1B;YACC,iBAA+B;QAChC;YACC,iBAAgC;QACjC;YACC,iBAAgC;QACjC;YACC,iBAAmC;QACpC;YACC,iBAAgC;QAEjC,gBAAqD;QACrD,iBAAsD;QACtD,iBAAsD;QACtD,iBAAsD;QACtD,iBAAsD;QACtD,iBAAsD;QACtD,iBAAsD;QACtD;YACC,iBAAkC;QACnC,iBAAkE;QAClE,iBAAkE;QAClE,iBAAkE;QAClE,iBAAkE;QAClE,iBAAkE;QAClE,iBAAkE;QAClE;YACC,kBAAmE;QAEpE;YACC,iBAA+B;QAChC;YACC,iBAAkC;KACnC;IAGD,IAAI,MAAM,CAAC,UAAU,WAAyB,EAAE;QAC/C,iBAA+B;KAC/B;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AA5UW,QAAA,aAAa,iBA4UxB","sourcesContent":["import { CardIds } from '../card-ids';\r\nimport { ReferenceCard } from '../models/reference-cards/reference-card';\r\nimport { httpWithRetries } from './utils';\r\n\r\nconst CARDS_CDN_URL = 'https://static.firestoneapp.com/data/cards';\r\n\r\nexport class AllCardsService {\r\n\tprivate cache: { [cardId: string]: ReferenceCard } = {};\r\n\tprivate cacheDbfId: { [cardDbfId: string]: ReferenceCard } = {};\r\n\r\n\tconstructor() {\r\n\t\t// We don't call it in the constructor because we want the app to be in control\r\n\t\t// of how they load the cards, and for it to be aware of when cards have been loaded\r\n\t\t// this.retrieveAllCards();\r\n\t}\r\n\r\n\t// We keep this synchronous because we ensure, in the game init pipeline, that loading cards\r\n\t// is the first thing we do\r\n\tpublic getCard(id: string | number, errorWhenUndefined = true): ReferenceCard {\r\n\t\treturn this.cache[id] ?? this.cacheDbfId[id] ?? ({} as ReferenceCard);\r\n\t}\r\n\r\n\tpublic getMultipleCards(ids: (string | number)[]): ReferenceCard[] {\r\n\t\treturn ids.map((id) => this.getCard(id));\r\n\t}\r\n\r\n\t/** @deprecated use getCard instead */\r\n\tpublic getCardFromDbfId(dbfId: number): ReferenceCard {\r\n\t\treturn this.cacheDbfId[dbfId] ?? ({} as ReferenceCard);\r\n\t}\r\n\r\n\t/** @deprecated use getMultipleCards instead */\r\n\tpublic getCardsFromDbfIds(dbfIds: number[]): ReferenceCard[] {\r\n\t\treturn dbfIds.map((dbfId) => this.getCardFromDbfId(dbfId));\r\n\t}\r\n\r\n\tpublic getCards(): ReferenceCard[] {\r\n\t\treturn Object.values(this.cache);\r\n\t}\r\n\r\n\tpublic async initializeCardsDb(version = '', cardsFile = 'cards_enUS.gz.json', useLocal = false): Promise<void> {\r\n\t\t// console.debug('[all-cards] asked to retrieve cards from CDN', version, new Error().stack);\r\n\t\treturn new Promise<void>(async (resolve, reject) => {\r\n\t\t\tlet allCards: readonly ReferenceCard[] = Object.values(this.cache);\r\n\t\t\tif (!!allCards?.length) {\r\n\t\t\t\t// console.debug('[all-cards] already loaded all cards');\r\n\t\t\t\tresolve();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis.cache = {};\r\n\t\t\tthis.cacheDbfId = {};\r\n\t\t\tconst baseUrl = useLocal ? '.' : CARDS_CDN_URL;\r\n\t\t\tversion = useLocal ? `${version}${Math.random()}` : version;\r\n\t\t\tallCards = await loadCards(baseUrl, cardsFile, version);\r\n\t\t\tif (!allCards?.length) {\r\n\t\t\t\tconsole.error('[all-cards] could not load cards', baseUrl, version, allCards);\r\n\t\t\t} else {\r\n\t\t\t\t// console.log('[all-cards] retrieved all cards', allCards?.length);\r\n\t\t\t\tfor (const card of allCards) {\r\n\t\t\t\t\tif (card.id) {\r\n\t\t\t\t\t\tthis.cache[card.id] = card;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (card.dbfId) {\r\n\t\t\t\t\t\tthis.cacheDbfId[card.dbfId] = card;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tresolve();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getRootCardId(cardId: string): string {\r\n\t\tconst dbfId = this.getCard(cardId)?.deckDuplicateDbfId ?? this.getCard(cardId)?.dbfId;\r\n\t\treturn this.getCard(dbfId)?.id;\r\n\t}\r\n}\r\n\r\nconst loadCards = async (baseUrl: string, cardsFile: string, version: string): Promise<readonly ReferenceCard[]> => {\r\n\tconst versionString = !!version?.length ? `?v=${version}` : '';\r\n\tconst url = `${baseUrl}/${cardsFile}${versionString}`;\r\n\tlet cardsStr: string = await httpWithRetries(url, 1);\r\n\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\treturn JSON.parse(cardsStr) as readonly ReferenceCard[];\r\n\t}\r\n\r\n\tconsole.warn('[all-cards] could not load cards, defaulting to split');\r\n\tconst numberOfSplits = 4;\r\n\tconst result: ReferenceCard[] = [];\r\n\tfor (let i = 0; i < numberOfSplits; i++) {\r\n\t\tconst splitUrl = `${baseUrl}/split/${cardsFile}.${i}${versionString}`;\r\n\t\tconsole.log('[all-cards] loading split', splitUrl);\r\n\t\tcardsStr = await httpWithRetries(splitUrl, 1);\r\n\t\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\t\tconst splitCards: readonly ReferenceCard[] = JSON.parse(cardsStr);\r\n\t\t\tconsole.log('loaded split cards', splitCards?.length);\r\n\t\t\tresult.push(...splitCards);\r\n\t\t}\r\n\t}\r\n\tif (!!result?.length) {\r\n\t\treturn result;\r\n\t}\r\n\r\n\tconst urlNoAudio = `${baseUrl}/no_audio/${cardsFile}?v=${version}`;\r\n\tconsole.warn('[all-cards] could not load cards, defaulting to no_audio', urlNoAudio);\r\n\tcardsStr = await httpWithRetries(urlNoAudio, 1);\r\n\tif (!!cardsStr?.length && !cardsStr.startsWith('<')) {\r\n\t\treturn JSON.parse(cardsStr) as readonly ReferenceCard[];\r\n\t}\r\n\treturn [];\r\n};\r\n\r\n// The spellstones are present in the AI decklist in their basic version\r\n// However, if the AI plays the spellstone's upgraded version, we need to remove\r\n// the basic one from the decklist\r\nexport const getBaseCardId = (cardId: string): string => {\r\n\tif (!cardId) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\tswitch (cardId) {\r\n\t\t// The spellstones\r\n\t\tcase 'LOOT_103t1':\r\n\t\tcase 'LOOT_103t2':\r\n\t\t\treturn 'LOOT_103';\r\n\t\tcase 'LOOT_043t2':\r\n\t\tcase 'LOOT_043t3':\r\n\t\t\treturn 'LOOT_043';\r\n\t\tcase 'LOOT_051t1':\r\n\t\tcase 'LOOT_051t2':\r\n\t\t\treturn 'LOOT_051';\r\n\t\tcase 'LOOT_064t1':\r\n\t\tcase 'LOOT_064t2':\r\n\t\t\treturn 'LOOT_064';\r\n\t\tcase 'LOOT_080t2':\r\n\t\tcase 'LOOT_080t3':\r\n\t\t\treturn 'LOOT_080';\r\n\t\tcase 'LOOT_091t1':\r\n\t\tcase 'LOOT_091t2':\r\n\t\t\treturn 'LOOT_091';\r\n\t\tcase 'LOOT_203t2':\r\n\t\tcase 'LOOT_203t3':\r\n\t\t\treturn 'LOOT_203';\r\n\t\tcase 'LOOT_503t':\r\n\t\tcase 'LOOT_503t2':\r\n\t\t\treturn 'LOOT_503';\r\n\t\tcase 'LOOT_507t':\r\n\t\tcase 'LOOT_507t2':\r\n\t\t\treturn 'LOOT_507';\r\n\t\tcase 'FB_Champs_LOOT_080t2':\r\n\t\tcase 'FB_Champs_LOOT_080t3':\r\n\t\t\treturn 'FB_Champs_LOOT_080';\r\n\t\t// case CardIds.SpinelSpellstone_:\r\n\t\t// case CardIds.GreaterSpinelSpellstone_:\r\n\t\t// \treturn CardIds.LesserSpinelSpellstone_;\r\n\t\t// case CardIds.LesserJasperSpellstone_JasperSpellstoneTokenCore:\r\n\t\t// case CardIds.LesserJasperSpellstone_GreaterJasperSpellstoneTokenCore:\r\n\t\t// \treturn CardIds.LesserJasperSpellstoneCore;\r\n\t\t// case CardIds.LesserEmeraldSpellstone_EmeraldSpellstoneTokenCore:\r\n\t\t// case CardIds.LesserEmeraldSpellstone_GreaterJaspEmeraldSpellstoneTokenCore:\r\n\t\t// \treturn CardIds.LesserEmeraldSpellstoneCore;\r\n\t\t// case CardIds.LesserDiamondSpellstone_DiamondSpellstoneTokenCore:\r\n\t\t// case CardIds.LesserDiamondSpellstone_GreaterDiamondSpellstoneTokenCore:\r\n\t\t// \treturn CardIds.LesserDiamondSpellstoneCore;\r\n\t\t// case CardIds.LesserAmethystSpellstone_AmethystSpellstoneTokenCore:\r\n\t\t// case CardIds.LesserAmethystSpellstone_GreaterAmethystSpellstoneTokenCore:\r\n\t\t// \treturn CardIds.LesserAmethystSpellstoneCore;\r\n\r\n\t\t// The \"unidentified\" spells\r\n\t\tcase 'LOOT_278t1':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t2':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t3':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_278t4':\r\n\t\t\treturn 'LOOT_278';\r\n\t\tcase 'LOOT_285t':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t2':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t3':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_285t4':\r\n\t\t\treturn 'LOOT_285';\r\n\t\tcase 'LOOT_286t1':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t2':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t3':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'LOOT_286t4':\r\n\t\t\treturn 'LOOT_286';\r\n\t\tcase 'DAL_366t1':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t2':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t3':\r\n\t\t\treturn 'DAL_366';\r\n\t\tcase 'DAL_366t4':\r\n\t\t\treturn 'DAL_366';\r\n\t\t// Galakrond\r\n\t\tcase CardIds.GalakrondTheTempest_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheTempest_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheTempest;\r\n\t\tcase CardIds.GalakrondTheWretched_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheWretched_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheWretched;\r\n\t\tcase CardIds.GalakrondTheUnspeakable_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheUnspeakable_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheUnspeakable;\r\n\t\tcase CardIds.GalakrondTheNightmare_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheNightmare_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheNightmare;\r\n\t\tcase CardIds.GalakrondTheUnbreakable_GalakrondTheApocalypseToken:\r\n\t\tcase CardIds.GalakrondTheUnbreakable_GalakrondAzerothsEndToken:\r\n\t\t\treturn CardIds.GalakrondTheUnbreakable;\r\n\t\t// Corrupted\r\n\t\tcase 'DMF_054t':\r\n\t\t\treturn 'DMF_054';\r\n\t\tcase 'DMF_061t':\r\n\t\t\treturn 'DMF_061';\r\n\t\tcase 'DMF_064t':\r\n\t\t\treturn 'DMF_064';\r\n\t\tcase 'DMF_073t':\r\n\t\t\treturn 'DMF_073';\r\n\t\tcase 'DMF_078t':\r\n\t\t\treturn 'DMF_078';\r\n\t\tcase 'DMF_080t':\r\n\t\t\treturn 'DMF_080';\r\n\t\tcase 'DMF_082t':\r\n\t\t\treturn 'DMF_082';\r\n\t\tcase 'DMF_083t':\r\n\t\t\treturn 'DMF_083';\r\n\t\tcase 'DMF_090t':\r\n\t\t\treturn 'DMF_090';\r\n\t\tcase 'DMF_101t':\r\n\t\t\treturn 'DMF_101';\r\n\t\tcase 'DMF_105t':\r\n\t\t\treturn 'DMF_105';\r\n\t\tcase 'DMF_117t':\r\n\t\t\treturn 'DMF_117';\r\n\t\tcase 'DMF_117t2':\r\n\t\t\treturn 'DMF_117';\r\n\t\tcase 'DMF_118t':\r\n\t\t\treturn 'DMF_118';\r\n\t\tcase 'DMF_124t':\r\n\t\t\treturn 'DMF_124';\r\n\t\tcase 'DMF_163t':\r\n\t\t\treturn 'DMF_163';\r\n\t\tcase 'DMF_174t':\r\n\t\t\treturn 'DMF_174';\r\n\t\tcase 'DMF_184t':\r\n\t\t\treturn 'DMF_184';\r\n\t\tcase 'DMF_186a':\r\n\t\t\treturn 'DMF_186';\r\n\t\tcase 'DMF_244t':\r\n\t\t\treturn 'DMF_244';\r\n\t\tcase 'DMF_247t':\r\n\t\t\treturn 'DMF_247';\r\n\t\tcase 'DMF_248t':\r\n\t\t\treturn 'DMF_248';\r\n\t\tcase 'DMF_517a':\r\n\t\t\treturn 'DMF_517';\r\n\t\tcase 'DMF_526a':\r\n\t\t\treturn 'DMF_526';\r\n\t\tcase 'DMF_701t':\r\n\t\t\treturn 'DMF_701';\r\n\t\tcase 'DMF_703t':\r\n\t\t\treturn 'DMF_703';\r\n\t\tcase 'DMF_730t':\r\n\t\t\treturn 'DMF_730';\r\n\t\tcase 'DMF_526a':\r\n\t\t\treturn 'DMF_526';\r\n\t\tcase CardIds.DreamingDrake_DreamingDrakeToken:\r\n\t\t\treturn CardIds.DreamingDrake;\r\n\t\tcase CardIds.LibramOfJudgment_LibramOfJudgmentToken:\r\n\t\t\treturn CardIds.LibramOfJudgment;\r\n\t\tcase CardIds.LuckysoulHoarder_LuckysoulHoarderToken:\r\n\t\t\treturn CardIds.LuckysoulHoarder;\r\n\t\tcase CardIds.NitroboostPoison_NitroboostPoisonToken:\r\n\t\t\treturn CardIds.NitroboostPoison;\r\n\t\t// The \"improve during run\" cards in Duels\r\n\t\t// Upgradable ranked spells\r\n\t\tcase CardIds.TameBeastRank1_TameBeastRank2Token:\r\n\t\tcase CardIds.TameBeastRank1_TameBeastRank3Token:\r\n\t\t\treturn CardIds.TameBeastRank1;\r\n\t\tcase CardIds.ChainLightningRank1_ChainLightningRank2Token:\r\n\t\tcase CardIds.ChainLightningRank1_ChainLightningRank3Token:\r\n\t\t\treturn CardIds.ChainLightningRank1;\r\n\t\tcase CardIds.FlurryRank1_FlurryRank2Token:\r\n\t\tcase CardIds.FlurryRank1_FlurryRank3Token:\r\n\t\t\treturn CardIds.FlurryRank1;\r\n\t\tcase CardIds.CondemnRank1_CondemnRank2Token:\r\n\t\tcase CardIds.CondemnRank1_CondemnRank3Token:\r\n\t\t\treturn CardIds.CondemnRank1;\r\n\t\tcase CardIds.WickedStabRank1_WickedStabRank2Token:\r\n\t\tcase CardIds.WickedStabRank1_WickedStabRank3Token:\r\n\t\t\treturn CardIds.WickedStabRank1;\r\n\t\tcase CardIds.LivingSeedRank1_LivingSeedRank2Token:\r\n\t\tcase CardIds.LivingSeedRank1_LivingSeedRank3Token:\r\n\t\t\treturn CardIds.LivingSeedRank1;\r\n\t\tcase CardIds.ConvictionRank1_ConvictionRank2Token:\r\n\t\tcase CardIds.ConvictionRank1_ConvictionRank3Token:\r\n\t\t\treturn CardIds.ConvictionRank1;\r\n\t\tcase CardIds.ConditioningRank1_ConditioningRank2Token:\r\n\t\tcase CardIds.ConditioningRank1_ConditioningRank3Token:\r\n\t\t\treturn CardIds.ConditioningRank1;\r\n\t\tcase CardIds.FuryRank1_FuryRank2Token:\r\n\t\tcase CardIds.FuryRank1_FuryRank3Token:\r\n\t\t\treturn CardIds.FuryRank1;\r\n\t\tcase CardIds.ImpSwarmRank1_ImpSwarmRank2Token:\r\n\t\tcase CardIds.ImpSwarmRank1_ImpSwarmRank3Token:\r\n\t\t\treturn CardIds.ImpSwarmRank1;\r\n\r\n\t\t// Infused\r\n\t\tcase CardIds.MischievousImp_MischievousImpToken:\r\n\t\t\treturn CardIds.MischievousImp;\r\n\t\tcase CardIds.ImpKingRafaam_ImpKingRafaamToken:\r\n\t\t\treturn CardIds.ImpKingRafaam_REV_789;\r\n\t\tcase CardIds.StonebornAccuser_StonebornAccuserToken:\r\n\t\t\treturn CardIds.StonebornAccuser;\r\n\t\tcase CardIds.Murlocula_MurloculaToken:\r\n\t\t\treturn CardIds.Murlocula;\r\n\t\tcase CardIds.FamishedFool_FamishedFoolToken:\r\n\t\t\treturn CardIds.FamishedFool;\r\n\t\tcase CardIds.SinfueledGolem_SinfueledGolemToken:\r\n\t\t\treturn CardIds.SinfueledGolem;\r\n\t\tcase CardIds.InsatiableDevourer_InsatiableDevourerToken:\r\n\t\t\treturn CardIds.InsatiableDevourer;\r\n\t\tcase CardIds.SireDenathrius_SireDenathriusToken:\r\n\t\t\treturn CardIds.SireDenathrius_REV_906;\r\n\t\tcase CardIds.PriestOfTheDeceased_PriestOfTheDeceasedToken:\r\n\t\t\treturn CardIds.PriestOfTheDeceased;\r\n\t\tcase CardIds.ArtificerXymox_ArtificerXymoxToken:\r\n\t\t\treturn CardIds.ArtificerXymox_REV_937;\r\n\t\tcase CardIds.BuffetBiggun_BuffetBiggunToken:\r\n\t\t\treturn CardIds.BuffetBiggun;\r\n\t\tcase CardIds.ImbuedAxe_ImbuedAxeToken:\r\n\t\t\treturn CardIds.ImbuedAxe;\r\n\t\tcase CardIds.CleanTheScene_CleanTheSceneToken:\r\n\t\t\treturn CardIds.CleanTheScene;\r\n\t\tcase CardIds.ConvincingDisguise_ConvincingDisguiseToken:\r\n\t\t\treturn CardIds.ConvincingDisguise;\r\n\t\tcase CardIds.PlotOfSin_PlotOfSinToken:\r\n\t\t\treturn CardIds.PlotOfSin;\r\n\t\tcase CardIds.AllFelBreaksLoose_AllFelBreaksLooseToken:\r\n\t\t\treturn CardIds.AllFelBreaksLoose;\r\n\t\tcase CardIds.Shadehound_ShadehoundToken:\r\n\t\t\treturn CardIds.Shadehound;\r\n\t\tcase CardIds.TotemicEvidence_TotemicEvidenceToken:\r\n\t\t\treturn CardIds.TotemicEvidence;\r\n\t\tcase CardIds.SylvanasTheAccused_SylvanasTheAccusedToken:\r\n\t\t\treturn CardIds.SylvanasTheAccused;\r\n\r\n\t\t// Remixed\r\n\t\tcase CardIds.RemixedDispenseOBot_ChillingDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MerchDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MoneyDispenseOBotToken:\r\n\t\tcase CardIds.RemixedDispenseOBot_MysteryDispenseOBotToken:\r\n\t\t\treturn CardIds.RemixedDispenseOBot;\r\n\t\tcase CardIds.RemixedRhapsody_AngstyRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_ResoundingRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_EmotionalRhapsodyToken:\r\n\t\tcase CardIds.RemixedRhapsody_WailingRhapsodyToken:\r\n\t\t\treturn CardIds.RemixedRhapsody;\r\n\t\tcase CardIds.RemixedTotemcarver_LoudTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_BluesyTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_BlazingTotemcarverToken:\r\n\t\tcase CardIds.RemixedTotemcarver_KaraokeTotemcarverToken:\r\n\t\t\treturn CardIds.RemixedTotemcarver;\r\n\t\tcase CardIds.RemixedMusician_CathedralMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_TropicalMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_RomanticMusicianToken:\r\n\t\tcase CardIds.RemixedMusician_NoiseMusicianToken:\r\n\t\t\treturn CardIds.RemixedMusician;\r\n\t\tcase CardIds.RemixedTuningFork_SharpenedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_ReinforcedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_CurvedTuningForkToken:\r\n\t\tcase CardIds.RemixedTuningFork_BackupTuningForkToken:\r\n\t\t\treturn CardIds.RemixedTuningFork;\r\n\t\t// Forged\r\n\t\tcase CardIds.BellowingFlames_BellowingFlamesToken:\r\n\t\t\treturn CardIds.BellowingFlames;\r\n\t\tcase CardIds.ChampionOfStorms_StormCycloneToken_TTN_801t2:\r\n\t\t\treturn CardIds.ChampionOfStorms_StormCycloneToken_TTN_801t1;\r\n\t\tcase CardIds.CreationProtocol_CreationProtocolToken:\r\n\t\t\treturn CardIds.CreationProtocol;\r\n\t\tcase CardIds.DiscipleOfSargeras_DiscipleOfSargerasToken:\r\n\t\t\treturn CardIds.DiscipleOfSargeras;\r\n\t\tcase CardIds.EmbraceOfNature_EmbraceOfNatureToken:\r\n\t\t\treturn CardIds.EmbraceOfNature;\r\n\t\tcase CardIds.Eulogizer_EulogizerToken:\r\n\t\t\treturn CardIds.Eulogizer;\r\n\t\tcase CardIds.LabConstructor_LabConstructorToken:\r\n\t\t\treturn CardIds.LabConstructor;\r\n\t\tcase CardIds.MechagnomeGuide_MechagnomeGuideToken:\r\n\t\t\treturn CardIds.MechagnomeGuide;\r\n\t\tcase CardIds.MoltenRune_MoltenRuneToken:\r\n\t\t\treturn CardIds.MoltenRune;\r\n\t\tcase CardIds.StormGiant_StormGiantToken:\r\n\t\t\treturn CardIds.StormGiant;\r\n\t\tcase CardIds.TitanforgedTraps_TitanforgedTrapsToken:\r\n\t\t\treturn CardIds.TitanforgedTraps;\r\n\t\tcase CardIds.TyrsTears_TyrsTearsToken:\r\n\t\t\treturn CardIds.TyrsTears;\r\n\t\tcase CardIds.WatcherOfTheSun_WatcherOfTheSunToken:\r\n\t\t\treturn CardIds.WatcherOfTheSun;\r\n\t\tcase CardIds.WeightOfTheWorld_WeightOfTheWorldToken:\r\n\t\t\treturn CardIds.WeightOfTheWorld;\r\n\t\tcase CardIds.Xb488Disposalbot_Xb488DisposalbotToken:\r\n\t\t\treturn CardIds.Xb488Disposalbot;\r\n\t\tcase CardIds.MuscleOTron_MuscleOTronToken_YOG_525t:\r\n\t\t\treturn CardIds.MuscleOTron_YOG_525;\r\n\t\tcase CardIds.Sanitize_SanitizeToken_YOG_502t:\r\n\t\t\treturn CardIds.Sanitize_YOG_502;\r\n\t\t// Bonus effect\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t1:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t2:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t3:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t4:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t5:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t6:\r\n\t\tcase CardIds.FromTheScrapheap_SparkbotToken_TTN_719t7:\r\n\t\t\treturn CardIds.DroneDeconstructor;\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t1:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t2:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t3:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t4:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t5:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t6:\r\n\t\tcase CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t7:\r\n\t\t\treturn CardIds.ElementalInspiration_PrimordialVortexToken_TTN_480t;\r\n\t\t// Transforms in hand\r\n\t\tcase CardIds.ForestSeedlings_ForestBlossomsToken:\r\n\t\t\treturn CardIds.ForestSeedlings;\r\n\t\tcase CardIds.FrostLotusSeedling_FrostLotusBlossomToken:\r\n\t\t\treturn CardIds.FrostLotusSeedling;\r\n\t}\r\n\r\n\t// Transfer Student should be handled on a case by case basis\r\n\tif (cardId.startsWith(CardIds.TransferStudent)) {\r\n\t\treturn CardIds.TransferStudent;\r\n\t}\r\n\r\n\treturn cardId;\r\n};\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bgs-utils.js","sourceRoot":"","sources":["../../src/services/bgs-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameType, Race, ReferenceCard } from '../public-api';\r\n\r\nexport const ALL_BG_RACES = [\r\n\tRace.BEAST,\r\n\tRace.DEMON,\r\n\tRace.DRAGON,\r\n\tRace.MECH,\r\n\tRace.MURLOC,\r\n\tRace.PIRATE,\r\n\tRace.ELEMENTAL,\r\n\tRace.QUILBOAR,\r\n\tRace.NAGA,\r\n\tRace.UNDEAD,\r\n];\r\n\r\nexport const TOTAL_RACES_IN_GAME = 5;\r\n\r\nexport const NON_BUYABLE_MINION_IDS = [\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A,\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A_G,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D_G,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B_G,\r\n\t// CardIds.ArgentBraggart_BG_SCH_149,\r\n\t// CardIds.ArgentBraggart_TB_BaconUps_308,\r\n\tCardIds.AvatarOfNzoth_FishOfNzothToken,\r\n\tCardIds.FishOfNzoth,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A_G,\r\n\tCardIds.SnakeTrap_SnakeLegacyToken,\r\n\tCardIds.SnakeTrap_SnakeVanillaToken,\r\n\tCardIds.ImprovedSnakeTrap_SnakeToken,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BabyKrush_DevilsaurToken,\r\n\tCardIds.Devilsaur,\r\n\t// To remove once the cards list is properly updated\r\n\tCardIds.FriendOfAFriend_BG22_404,\r\n\tCardIds.FriendOfAFriend_BG22_404_G,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n\tCardIds.MurlocWarleaderCore,\r\n\tCardIds.MurlocWarleaderVanilla,\r\n\t// 23.4, probably not needed since they are already tokens\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt2,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt3,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt4,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt5,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt6,\r\n\t// 24.0, same\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170,\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170_G,\r\n\tCardIds.EmperorCobraLegacy_EX1_170,\r\n\tCardIds.SnakeLegacyToken,\r\n\tCardIds.SnakeLegacy,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BolvarFireblood_CORE_ICC_858,\r\n\tCardIds.BolvarFireblood_ICC_858,\r\n\t// 25.2\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\tCardIds.MechaJaraxxus_RustedReggieToken,\r\n\tCardIds.MechaJaraxxus_MagtheridonPrimeToken,\r\n\tCardIds.MechaJaraxxus_BaltharakToken,\r\n\tCardIds.RustedReggie,\r\n\tCardIds.MagtheridonPrime,\r\n\tCardIds.Baltharak,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C_G,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A_G,\r\n\t// 26.2\r\n\tCardIds.Manasaber_CublingToken_BG26_800t,\r\n\tCardIds.Manasaber_CublingToken_BG26_800_Gt,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803t,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803_Gt,\r\n\t//27.2\r\n\tCardIds.OozelingGladiator_SlimyShieldToken_BG27_002t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004_Gt,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004_Gt2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2,\r\n\tCardIds.TavernTier2,\r\n\tCardIds.TavernTier3,\r\n\tCardIds.TavernTier4,\r\n\tCardIds.TavernTier5,\r\n\tCardIds.TavernTier6,\r\n\tCardIds.TavernTier7_TB_BaconShopTechUp07_Button,\r\n\tCardIds.TombPillager_WON_340,\r\n\t// 27.2.2\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n];\r\n\r\nexport const NON_DISCOVERABLE_BUDDIES = [\r\n\tCardIds.SpiritRaptor_BG22_HERO_001_Buddy,\r\n\tCardIds.RagingContender_TB_BaconShop_HERO_67_Buddy,\r\n\tCardIds.CaptainFairmount_BG21_HERO_000_Buddy,\r\n\tCardIds.FlightTrainer_BG20_HERO_283_Buddy,\r\n\tCardIds.JandicesApprentice_TB_BaconShop_HERO_71_Buddy,\r\n\tCardIds.CrimsonHandCenturion_TB_BaconShop_HERO_60_Buddy,\r\n\tCardIds.CrazyMonkey_TB_BaconShop_HERO_38_Buddy,\r\n\tCardIds.ShadowWarden_TB_BaconShop_HERO_62_Buddy,\r\n\tCardIds.NexusLord_TB_BaconShop_HERO_58_Buddy,\r\n\tCardIds.LeiFlamepaw_BG20_HERO_202_Buddy,\r\n\tCardIds.Watfin_BG23_HERO_303_Buddy,\r\n\tCardIds.NightmareEctoplasm_BG20_HERO_301_Buddy,\r\n\tCardIds.ManyWhelps_BG22_HERO_305_Buddy,\r\n\tCardIds.DranoshSaurfang_BG20_HERO_102_Buddy,\r\n\tCardIds.Tamuzo_BG23_HERO_201_Buddy,\r\n\tCardIds.MaxwellMightySteed_TB_BaconShop_HERO_40_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Mishmash_TB_BaconShop_HERO_33_Buddy,\r\n\tCardIds.PigeonLord_TB_BaconShop_HERO_12_Buddy,\r\n\tCardIds.VardensAquarrior_BG22_HERO_004_Buddy,\r\n\tCardIds.AcolyteOfYoggSaron_TB_BaconShop_HERO_35_Buddy,\r\n\tCardIds.SubmersibleChef_BG22_HERO_201_Buddy,\r\n];\r\n\r\nexport const BUDDIES_TRIBE_REQUIREMENTS = [\r\n\t{\r\n\t\tbuddy: CardIds.Vaelastrasz_TB_BaconShop_HERO_56_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.DeathsHeadSage_BG20_HERO_103_Buddy,\r\n\t\ttribe: Race.QUILBOAR,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SparkfinSoothsayer_TB_BaconShop_HERO_55_Buddy,\r\n\t\ttribe: Race.MURLOC,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SubScrubber_BG22_HERO_200_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.CoilfangElite_BG23_HERO_304_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy,\r\n\t\ttribe: Race.DEMON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ElementiumSquirrelBomb_TB_BaconShop_HERO_17_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.TuskarrRaider_TB_BaconShop_HERO_18_Buddy,\r\n\t\ttribe: Race.PIRATE,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Festergut_BG25_HERO_100_Buddy,\r\n\t\ttribe: Race.UNDEAD,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ImperialDefender_BG22_HERO_007_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n];\r\n\r\nexport const defaultStartingHp = (\r\n\tgameType: GameType,\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): number => {\r\n\tif (isBattlegrounds(gameType)) {\r\n\t\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\t\treturn allCards.getCard(normalized).health || 30;\r\n\t}\r\n\treturn 30;\r\n};\r\n\r\nexport const isBattlegrounds = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS,\r\n\t\tGameType.GT_BATTLEGROUNDS_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_AI_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_PLAYER_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const normalizeHeroCardId = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tif (!heroCardId) {\r\n\t\treturn heroCardId;\r\n\t}\r\n\r\n\tconst normalizedAfterSkin = normalizeHeroCardIdAfterSkin(heroCardId, allCards);\r\n\tswitch (normalizedAfterSkin) {\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HERO_59';\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_BG22_HERO_007;\r\n\t\tdefault:\r\n\t\t\treturn normalizedAfterSkin;\r\n\t}\r\n};\r\n\r\nconst normalizeHeroCardIdAfterSkin = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst heroCard = allCards.getCard(heroCardId);\r\n\tif (!!heroCard?.battlegroundsHeroParentDbfId) {\r\n\t\tconst parentCard = allCards.getCard(heroCard.battlegroundsHeroParentDbfId);\r\n\t\tif (!!parentCard) {\r\n\t\t\treturn parentCard.id;\r\n\t\t}\r\n\t}\r\n\t// Fallback to regex\r\n\tconst bgHeroSkinMatch = heroCardId.match(/(.*)_SKIN_.*/);\r\n\tif (bgHeroSkinMatch) {\r\n\t\treturn bgHeroSkinMatch[1];\r\n\t}\r\n\treturn heroCardId;\r\n};\r\n\r\nexport const getTribeName = (tribe: Race, i18n: { translateString: (input: string) => string }): string =>\r\n\ti18n.translateString(`app.battlegrounds.tribes.${Race[tribe]?.toLowerCase()}`);\r\n\r\nexport const getTribeIcon = (tribe: string | Race): string => {\r\n\tconst referenceCardId = getReferenceTribeCardId(tribe);\r\n\treturn `https://static.zerotoheroes.com/hearthstone/cardart/256x/${referenceCardId}.jpg`;\r\n};\r\n\r\nexport const getReferenceTribeCardId = (tribe: string | Race): string => {\r\n\tlet referenceCardId: string;\r\n\ttribe = (tribe as string)?.padStart ? (tribe as string).toLowerCase() : tribe;\r\n\tswitch (tribe) {\r\n\t\tcase 'mech':\r\n\t\tcase Race.MECH:\r\n\t\t\treferenceCardId = CardIds.DeflectOBot_BGS_071;\r\n\t\t\tbreak;\r\n\t\tcase 'beast':\r\n\t\tcase Race.BEAST:\r\n\t\t\treferenceCardId = CardIds.MamaBear_BGS_021;\r\n\t\t\tbreak;\r\n\t\tcase 'demon':\r\n\t\tcase Race.DEMON:\r\n\t\t\treferenceCardId = CardIds.ImpulsiveTrickster_BG21_006;\r\n\t\t\tbreak;\r\n\t\tcase 'dragon':\r\n\t\tcase Race.DRAGON:\r\n\t\t\treferenceCardId = CardIds.KalecgosArcaneAspect_BGS_041;\r\n\t\t\tbreak;\r\n\t\tcase 'murloc':\r\n\t\tcase Race.MURLOC:\r\n\t\t\treferenceCardId = CardIds.RockpoolHunter_BG_UNG_073;\r\n\t\t\tbreak;\r\n\t\tcase 'pirate':\r\n\t\tcase Race.PIRATE:\r\n\t\t\treferenceCardId = CardIds.Scallywag_BGS_061;\r\n\t\t\tbreak;\r\n\t\tcase 'elemental':\r\n\t\tcase Race.ELEMENTAL:\r\n\t\t\treferenceCardId = CardIds.Sellemental_BGS_115;\r\n\t\t\tbreak;\r\n\t\tcase 'naga':\r\n\t\tcase Race.NAGA:\r\n\t\t\treferenceCardId = CardIds.ShellCollector_BG23_002;\r\n\t\t\tbreak;\r\n\t\tcase 'quilboar':\r\n\t\tcase Race.QUILBOAR:\r\n\t\t\treferenceCardId = CardIds.SunBaconRelaxer_BG20_301;\r\n\t\t\tbreak;\r\n\t\tcase 'undead':\r\n\t\tcase Race.UNDEAD:\r\n\t\t\treferenceCardId = CardIds.EternalKnight_BG25_008;\r\n\t\t\tbreak;\r\n\t\tcase 'all':\r\n\t\tcase Race.ALL:\r\n\t\t\treferenceCardId = CardIds.Amalgadon_BGS_069;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treferenceCardId = CardIds.PatientScout_BG24_715;\r\n\t\t\tbreak;\r\n\t}\r\n\treturn referenceCardId;\r\n};\r\n\r\nexport const getHeroPower = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\tswitch (normalized) {\r\n\t\tcase 'TB_BaconShop_HERO_01':\r\n\t\t\treturn 'TB_BaconShop_HP_001';\r\n\t\tcase 'TB_BaconShop_HERO_02':\r\n\t\t\treturn 'TB_BaconShop_HP_011';\r\n\t\tcase 'TB_BaconShop_HERO_08':\r\n\t\t\treturn 'TB_BaconShop_HP_069';\r\n\t\tcase CardIds.RagnarosTheFirelord_TB_BaconShop_HERO_11:\r\n\t\t\treturn CardIds.DieInsects_TB_BaconShop_HP_087;\r\n\t\tcase 'TB_BaconShop_HERO_12':\r\n\t\t\treturn 'TB_BaconShop_HP_041';\r\n\t\tcase CardIds.QueenWagtoggle_TB_BaconShop_HERO_14:\r\n\t\t\treturn CardIds.WaxWarband;\r\n\t\tcase 'TB_BaconShop_HERO_15':\r\n\t\t\treturn 'TB_BaconShop_HP_010';\r\n\t\tcase 'TB_BaconShop_HERO_16':\r\n\t\t\treturn 'TB_BaconShop_HP_044';\r\n\t\tcase 'TB_BaconShop_HERO_17':\r\n\t\t\treturn 'TB_BaconShop_HP_015';\r\n\t\tcase 'TB_BaconShop_HERO_18':\r\n\t\t\treturn 'TB_BaconShop_HP_072';\r\n\t\tcase 'TB_BaconShop_HERO_20':\r\n\t\t\treturn 'TB_BaconShop_HP_018';\r\n\t\tcase 'TB_BaconShop_HERO_21':\r\n\t\t\treturn 'TB_BaconShop_HP_020';\r\n\t\tcase 'TB_BaconShop_HERO_22':\r\n\t\t\treturn 'TB_BaconShop_HP_024';\r\n\t\tcase CardIds.Shudderwock_TB_BaconShop_HERO_23:\r\n\t\t\treturn CardIds.SnickerSnack;\r\n\t\tcase 'TB_BaconShop_HERO_25':\r\n\t\t\treturn 'TB_BaconShop_HP_049';\r\n\t\tcase 'TB_BaconShop_HERO_27':\r\n\t\t\treturn 'TB_BaconShop_HP_014';\r\n\t\tcase 'TB_BaconShop_HERO_28':\r\n\t\t\treturn 'TB_BaconShop_HP_028';\r\n\t\tcase 'TB_BaconShop_HERO_30':\r\n\t\t\treturn 'TB_BaconShop_HP_043';\r\n\t\tcase 'TB_BaconShop_HERO_31':\r\n\t\t\treturn 'TB_BaconShop_HP_009';\r\n\t\tcase 'TB_BaconShop_HERO_33':\r\n\t\t\treturn 'TB_BaconShop_HP_033';\r\n\t\tcase 'TB_BaconShop_HERO_34':\r\n\t\t\treturn 'TB_BaconShop_HP_035';\r\n\t\tcase 'TB_BaconShop_HERO_35':\r\n\t\t\treturn 'TB_BaconShop_HP_039';\r\n\t\tcase 'TB_BaconShop_HERO_36':\r\n\t\t\treturn 'TB_BaconShop_HP_042';\r\n\t\tcase 'TB_BaconShop_HERO_37':\r\n\t\t\treturn 'TB_BaconShop_HP_036';\r\n\t\tcase 'TB_BaconShop_HERO_38':\r\n\t\t\treturn 'TB_BaconShop_HP_038';\r\n\t\tcase 'TB_BaconShop_HERO_39':\r\n\t\t\treturn 'TB_BaconShop_HP_040';\r\n\t\tcase 'TB_BaconShop_HERO_40':\r\n\t\t\treturn 'TB_BaconShop_HP_057';\r\n\t\tcase 'TB_BaconShop_HERO_41':\r\n\t\t\treturn 'TB_BaconShop_HP_046';\r\n\t\tcase 'TB_BaconShop_HERO_42':\r\n\t\t\treturn 'TB_BaconShop_HP_047';\r\n\t\tcase 'TB_BaconShop_HERO_43':\r\n\t\t\treturn 'TB_BaconShop_HP_048';\r\n\t\t// case 'TB_BaconShop_HERO_44':\r\n\t\t// \treturn 'TB_BaconShop_HP_050';\r\n\t\tcase 'TB_BaconShop_HERO_45':\r\n\t\t\treturn 'TB_BaconShop_HP_053';\r\n\t\tcase 'TB_BaconShop_HERO_47':\r\n\t\t\treturn 'TB_BaconShop_HP_051';\r\n\t\tcase 'TB_BaconShop_HERO_49':\r\n\t\t\treturn 'TB_BaconShop_HP_054';\r\n\t\tcase 'TB_BaconShop_HERO_50':\r\n\t\t\treturn 'TB_BaconShop_HP_077';\r\n\t\tcase 'TB_BaconShop_HERO_52':\r\n\t\t\treturn 'TB_BaconShop_HP_061';\r\n\t\tcase 'TB_BaconShop_HERO_53':\r\n\t\t\treturn 'TB_BaconShop_HP_062';\r\n\t\tcase 'TB_BaconShop_HERO_55':\r\n\t\t\treturn 'TB_BaconShop_HP_056';\r\n\t\tcase 'TB_BaconShop_HERO_56':\r\n\t\t\treturn 'TB_BaconShop_HP_064';\r\n\t\tcase 'TB_BaconShop_HERO_57':\r\n\t\t\treturn 'TB_BaconShop_HP_063';\r\n\t\tcase 'TB_BaconShop_HERO_58':\r\n\t\t\treturn 'TB_BaconShop_HP_052';\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HP_065t2';\r\n\t\tcase 'TB_BaconShop_HERO_59':\r\n\t\t\treturn 'TB_BaconShop_HP_065';\r\n\t\tcase 'TB_BaconShop_HERO_60':\r\n\t\t\treturn 'TB_BaconShop_HP_066';\r\n\t\tcase 'TB_BaconShop_HERO_61':\r\n\t\t\treturn 'TB_BaconShop_HP_067';\r\n\t\tcase 'TB_BaconShop_HERO_62':\r\n\t\t\treturn 'TB_BaconShop_HP_068';\r\n\t\tcase 'TB_BaconShop_HERO_64':\r\n\t\t\treturn 'TB_BaconShop_HP_074';\r\n\t\tcase CardIds.CaptainHooktusk_TB_BaconShop_HERO_67:\r\n\t\t\treturn CardIds.TrashForTreasure;\r\n\t\tcase 'TB_BaconShop_HERO_68':\r\n\t\t\treturn 'TB_BaconShop_HP_076';\r\n\t\tcase 'TB_BaconShop_HERO_70':\r\n\t\t\treturn 'TB_BaconShop_HP_080';\r\n\t\tcase 'TB_BaconShop_HERO_71':\r\n\t\t\treturn 'TB_BaconShop_HP_084';\r\n\t\tcase 'TB_BaconShop_HERO_72':\r\n\t\t\treturn 'TB_BaconShop_HP_081';\r\n\t\tcase 'TB_BaconShop_HERO_74':\r\n\t\t\treturn 'TB_BaconShop_HP_082';\r\n\t\tcase CardIds.Chenvaala_TB_BaconShop_HERO_78:\r\n\t\t\treturn CardIds.Avalanche_TB_BaconShop_HP_088;\r\n\t\tcase CardIds.Rakanishu_TB_BaconShop_HERO_75:\r\n\t\t\treturn CardIds.TavernLighting;\r\n\t\tcase CardIds.Alakir:\r\n\t\t\treturn CardIds.SwattingInsects;\r\n\t\tcase CardIds.ZephrysTheGreat_TB_BaconShop_HERO_91:\r\n\t\t\treturn CardIds.ThreeWishes;\r\n\t\tcase CardIds.SilasDarkmoon_TB_BaconShop_HERO_90:\r\n\t\t\treturn CardIds.ComeOneComeAll;\r\n\t\tcase CardIds.Cthun_TB_BaconShop_HERO_29:\r\n\t\t\treturn CardIds.SaturdayCthuns;\r\n\t\tcase CardIds.Nzoth:\r\n\t\t\treturn CardIds.AvatarOfNzoth;\r\n\t\tcase CardIds.Yshaarj:\r\n\t\t\treturn CardIds.EmbraceYourRage;\r\n\t\tcase CardIds.Tickatus_TB_BaconShop_HERO_94:\r\n\t\t\treturn CardIds.PrizeWall;\r\n\t\tcase CardIds.Greybough_TB_BaconShop_HERO_95:\r\n\t\t\treturn CardIds.SproutItOut;\r\n\t\tcase CardIds.OverlordSaurfang_BG20_HERO_102:\r\n\t\t\treturn CardIds.OverlordSaurfang_ForTheHorde;\r\n\t\tcase CardIds.DeathSpeakerBlackthorn_BG20_HERO_103:\r\n\t\t\treturn CardIds.DeathSpeakerBlackthorn_Bloodbound;\r\n\t\tcase CardIds.Voljin_BG20_HERO_201:\r\n\t\t\treturn CardIds.Voljin_SpiritSwap_BG20_HERO_201p;\r\n\t\tcase CardIds.Xyrella_BG20_HERO_101:\r\n\t\t\treturn CardIds.Xyrella_SeeTheLight;\r\n\t\tcase CardIds.MutanusTheDevourer_BG20_HERO_301:\r\n\t\t\treturn CardIds.MutanusTheDevourer_Devour;\r\n\t\tcase CardIds.GuffRunetotem_BG20_HERO_242:\r\n\t\t\treturn CardIds.GuffRunetotem_NaturalBalance;\r\n\t\tcase CardIds.KurtrusAshfallen_BG20_HERO_280:\r\n\t\t\treturn CardIds.KurtrusAshfallen_GlaiveRicochet;\r\n\t\tcase CardIds.Galewing:\r\n\t\t\treturn CardIds.Galewing_DungarsGryphon;\r\n\t\tcase CardIds.TradePrinceGallywix_TB_BaconShop_HERO_10:\r\n\t\t\treturn CardIds.SmartSavings;\r\n\t\tcase CardIds.MasterNguyen:\r\n\t\t\treturn CardIds.MasterNguyen_PowerOfTheStorm;\r\n\t\tcase CardIds.CarielRoame_BG21_HERO_000:\r\n\t\t\treturn CardIds.CarielRoame_Conviction;\r\n\t\tcase CardIds.Sneed_BG21_HERO_030:\r\n\t\t\treturn CardIds.Sneed_SneedsReplicator;\r\n\t\tcase CardIds.CookieTheCook_BG21_HERO_020:\r\n\t\t\treturn CardIds.CookieTheCook_StirThePot;\r\n\t\tcase CardIds.TamsinRoame_BG20_HERO_282:\r\n\t\t\treturn CardIds.TamsinRoame_FragrantPhylactery;\r\n\t\tcase CardIds.ScabbsCutterbutter_BG21_HERO_010:\r\n\t\t\treturn CardIds.ScabbsCutterbutter_ISpy;\r\n\t\tcase CardIds.Brukan_BG22_HERO_001:\r\n\t\t\treturn CardIds.Brukan_EmbraceTheElements;\r\n\t\tcase CardIds.Drekthar_BG22_HERO_002:\r\n\t\t\treturn CardIds.Drekthar_LeadTheFrostwolves;\r\n\t\tcase CardIds.VanndarStormpike_BG22_HERO_003:\r\n\t\t\treturn CardIds.VanndarStormpike_LeadTheStormpikes;\r\n\t\tcase CardIds.TavishStormpike_BG22_HERO_000:\r\n\t\t\treturn CardIds.TavishStormpike_Deadeye;\r\n\t\tcase CardIds.VardenDawngrasp_BG22_HERO_004:\r\n\t\t\treturn CardIds.VardenDawngrasp_TwiceAsNice;\r\n\t\tcase CardIds.Rokara_BG20_HERO_100:\r\n\t\t\treturn CardIds.Rokara_GloryOfCombat;\r\n\t\tcase CardIds.Onyxia_BG22_HERO_305:\r\n\t\t\treturn CardIds.Onyxia_Broodmother;\r\n\t\tcase CardIds.AmbassadorFaelin_BG22_HERO_201:\r\n\t\t\treturn CardIds.AmbassadorFaelin_ExpeditionPlans;\r\n\t\tcase CardIds.IniStormcoil_BG22_HERO_200:\r\n\t\t\treturn CardIds.IniStormcoil_Mechgyver;\r\n\t\tcase CardIds.QueenAzshara_BG22_HERO_007:\r\n\t\t\treturn CardIds.QueenAzshara_AzsharasAmbition;\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_NagaConquest;\r\n\t\tcase CardIds.Ozumat_BG23_HERO_201:\r\n\t\t\treturn CardIds.Ozumat_Tentacular;\r\n\t\tcase CardIds.LadyVashj_BG23_HERO_304:\r\n\t\t\treturn CardIds.LadyVashj_RelicsOfTheDeep;\r\n\t\tcase CardIds.HeistbaronTogwaggle_BG23_HERO_305:\r\n\t\t\treturn CardIds.HeistbaronTogwaggle_ThePerfectCrime;\r\n\t\tcase CardIds.MurlocHolmes_BG23_HERO_303:\r\n\t\t\treturn CardIds.MurlocHolmes_DetectiveForHire;\r\n\t\tcase CardIds.SireDenathrius_BG24_HERO_100:\r\n\t\t\treturn CardIds.SireDenathrius_Whodunitquestion;\r\n\t\tcase CardIds.SylvanasWindrunner_BG23_HERO_306:\r\n\t\t\treturn CardIds.SylvanasWindrunner_ReclaimedSouls;\r\n\t\tcase CardIds.TheJailer_TB_BaconShop_HERO_702:\r\n\t\t\treturn CardIds.RunicEmpowerment;\r\n\t\tcase CardIds.EnhanceOMechano_BG24_HERO_204:\r\n\t\t\treturn CardIds.EnhanceOMechano_Enhancification;\r\n\t\tcase CardIds.ProfessorPutricide_BG25_HERO_100:\r\n\t\t\treturn CardIds.ProfessorPutricide_BuildAnUndead;\r\n\t\tcase CardIds.TeronGorefiend_BG25_HERO_103:\r\n\t\t\treturn CardIds.TeronGorefiend_RapidReanimation;\r\n\t\tcase CardIds.ETCBandManager_BG25_HERO_105:\r\n\t\t\treturn CardIds.ETCBandManager_SignANewArtist;\r\n\t\tcase CardIds.RockMasterVoone_BG26_HERO_104:\r\n\t\t\treturn CardIds.RockMasterVoone_UpbeatHarmony;\r\n\t\tcase CardIds.IngeTheIronHymn:\r\n\t\t\treturn CardIds.IngeTheIronHymn_MajorHymn;\r\n\t\tcase CardIds.CapnHoggarr_BG26_HERO_101:\r\n\t\t\treturn CardIds.CapnHoggarr_ImTheCapnNow;\r\n\t\tcase CardIds.Diablo:\r\n\t\t\treturn CardIds.Diablo_RealmOfTerror;\r\n\t\tcase CardIds.ThorimStormlord_BG27_HERO_801:\r\n\t\t\treturn CardIds.ThorimStormlord_ChooseYourChampion_BG27_HERO_801p2;\r\n\t\tcase CardIds.SnakeEyes_BG28_HERO_400:\r\n\t\t\treturn CardIds.SnakeEyes_LuckyRoll_BG28_HERO_400p;\r\n\t\tcase CardIds.TaethelanBloodwatcher_BG28_HERO_800:\r\n\t\t\treturn CardIds.TaethelanBloodwatcher_ReliquaryResearch_BG28_HERO_800p;\r\n\t\tcase CardIds.DoctorHollidae_BG28_HERO_801:\r\n\t\t\treturn CardIds.DoctorHollidae_BlessingOfTheNineFrogs_BG28_HERO_801p;\r\n\r\n\t\tcase '':\r\n\t\t\treturn null; // new heroes\r\n\t}\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"file":"bgs-utils.js","sourceRoot":"","sources":["../../src/services/bgs-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameType, Race, ReferenceCard } from '../public-api';\r\n\r\nexport const ALL_BG_RACES = [\r\n\tRace.BEAST,\r\n\tRace.DEMON,\r\n\tRace.DRAGON,\r\n\tRace.MECH,\r\n\tRace.MURLOC,\r\n\tRace.PIRATE,\r\n\tRace.ELEMENTAL,\r\n\tRace.QUILBOAR,\r\n\tRace.NAGA,\r\n\tRace.UNDEAD,\r\n];\r\n\r\nexport const TOTAL_RACES_IN_GAME = 5;\r\n\r\nexport const NON_BUYABLE_MINION_IDS = [\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A,\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A_G,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D_G,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B_G,\r\n\t// CardIds.ArgentBraggart_BG_SCH_149,\r\n\t// CardIds.ArgentBraggart_TB_BaconUps_308,\r\n\tCardIds.AvatarOfNzoth_FishOfNzothToken,\r\n\tCardIds.FishOfNzoth,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A_G,\r\n\tCardIds.SnakeTrap_SnakeLegacyToken,\r\n\tCardIds.SnakeTrap_SnakeVanillaToken,\r\n\tCardIds.ImprovedSnakeTrap_SnakeToken,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BabyKrush_DevilsaurToken,\r\n\tCardIds.Devilsaur,\r\n\t// To remove once the cards list is properly updated\r\n\tCardIds.FriendOfAFriend_BG22_404,\r\n\tCardIds.FriendOfAFriend_BG22_404_G,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n\tCardIds.MurlocWarleaderCore,\r\n\tCardIds.MurlocWarleaderVanilla,\r\n\t// 23.4, probably not needed since they are already tokens\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt2,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt3,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt4,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt5,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt6,\r\n\t// 24.0, same\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170,\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170_G,\r\n\tCardIds.EmperorCobraLegacy_EX1_170,\r\n\tCardIds.SnakeLegacyToken,\r\n\tCardIds.SnakeLegacy,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BolvarFireblood_CORE_ICC_858,\r\n\tCardIds.BolvarFireblood_ICC_858,\r\n\t// 25.2\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\tCardIds.MechaJaraxxus_RustedReggieToken,\r\n\tCardIds.MechaJaraxxus_MagtheridonPrimeToken,\r\n\tCardIds.MechaJaraxxus_BaltharakToken,\r\n\tCardIds.RustedReggie,\r\n\tCardIds.MagtheridonPrime,\r\n\tCardIds.Baltharak,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C_G,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A_G,\r\n\t// 26.2\r\n\tCardIds.Manasaber_CublingToken_BG26_800t,\r\n\tCardIds.Manasaber_CublingToken_BG26_800_Gt,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803t,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803_Gt,\r\n\t//27.2\r\n\tCardIds.OozelingGladiator_SlimyShieldToken_BG27_002t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004_Gt,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004_Gt2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2,\r\n\tCardIds.TavernTier2,\r\n\tCardIds.TavernTier3,\r\n\tCardIds.TavernTier4,\r\n\tCardIds.TavernTier5,\r\n\tCardIds.TavernTier6,\r\n\tCardIds.TavernTier7_TB_BaconShopTechUp07_Button,\r\n\tCardIds.TombPillager_WON_340,\r\n\t// 27.2.2\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\t// 28.6\r\n\tCardIds.StableAmalgamation_TotallyNormalHorseToken_BG28_Reward_518t,\r\n\tCardIds.TotallyNormalHorse_BG28_Reward_518t_G,\r\n];\r\n\r\nexport const NON_DISCOVERABLE_BUDDIES = [\r\n\tCardIds.SpiritRaptor_BG22_HERO_001_Buddy,\r\n\tCardIds.RagingContender_TB_BaconShop_HERO_67_Buddy,\r\n\tCardIds.CaptainFairmount_BG21_HERO_000_Buddy,\r\n\tCardIds.FlightTrainer_BG20_HERO_283_Buddy,\r\n\tCardIds.JandicesApprentice_TB_BaconShop_HERO_71_Buddy,\r\n\tCardIds.CrimsonHandCenturion_TB_BaconShop_HERO_60_Buddy,\r\n\tCardIds.CrazyMonkey_TB_BaconShop_HERO_38_Buddy,\r\n\tCardIds.ShadowWarden_TB_BaconShop_HERO_62_Buddy,\r\n\tCardIds.NexusLord_TB_BaconShop_HERO_58_Buddy,\r\n\tCardIds.LeiFlamepaw_BG20_HERO_202_Buddy,\r\n\tCardIds.Watfin_BG23_HERO_303_Buddy,\r\n\tCardIds.NightmareEctoplasm_BG20_HERO_301_Buddy,\r\n\tCardIds.ManyWhelps_BG22_HERO_305_Buddy,\r\n\tCardIds.DranoshSaurfang_BG20_HERO_102_Buddy,\r\n\tCardIds.Tamuzo_BG23_HERO_201_Buddy,\r\n\tCardIds.MaxwellMightySteed_TB_BaconShop_HERO_40_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Mishmash_TB_BaconShop_HERO_33_Buddy,\r\n\tCardIds.PigeonLord_TB_BaconShop_HERO_12_Buddy,\r\n\tCardIds.VardensAquarrior_BG22_HERO_004_Buddy,\r\n\tCardIds.AcolyteOfYoggSaron_TB_BaconShop_HERO_35_Buddy,\r\n\tCardIds.SubmersibleChef_BG22_HERO_201_Buddy,\r\n];\r\n\r\nexport const BUDDIES_TRIBE_REQUIREMENTS = [\r\n\t{\r\n\t\tbuddy: CardIds.Vaelastrasz_TB_BaconShop_HERO_56_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.DeathsHeadSage_BG20_HERO_103_Buddy,\r\n\t\ttribe: Race.QUILBOAR,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SparkfinSoothsayer_TB_BaconShop_HERO_55_Buddy,\r\n\t\ttribe: Race.MURLOC,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SubScrubber_BG22_HERO_200_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.CoilfangElite_BG23_HERO_304_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy,\r\n\t\ttribe: Race.DEMON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ElementiumSquirrelBomb_TB_BaconShop_HERO_17_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.TuskarrRaider_TB_BaconShop_HERO_18_Buddy,\r\n\t\ttribe: Race.PIRATE,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Festergut_BG25_HERO_100_Buddy,\r\n\t\ttribe: Race.UNDEAD,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ImperialDefender_BG22_HERO_007_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n];\r\n\r\nexport const defaultStartingHp = (\r\n\tgameType: GameType,\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): number => {\r\n\tif (isBattlegrounds(gameType)) {\r\n\t\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\t\treturn allCards.getCard(normalized).health || 30;\r\n\t}\r\n\treturn 30;\r\n};\r\n\r\nexport const isBattlegrounds = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS,\r\n\t\tGameType.GT_BATTLEGROUNDS_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_AI_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_PLAYER_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const normalizeHeroCardId = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tif (!heroCardId) {\r\n\t\treturn heroCardId;\r\n\t}\r\n\r\n\tconst normalizedAfterSkin = normalizeHeroCardIdAfterSkin(heroCardId, allCards);\r\n\tswitch (normalizedAfterSkin) {\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HERO_59';\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_BG22_HERO_007;\r\n\t\tdefault:\r\n\t\t\treturn normalizedAfterSkin;\r\n\t}\r\n};\r\n\r\nconst normalizeHeroCardIdAfterSkin = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst heroCard = allCards.getCard(heroCardId);\r\n\tif (!!heroCard?.battlegroundsHeroParentDbfId) {\r\n\t\tconst parentCard = allCards.getCard(heroCard.battlegroundsHeroParentDbfId);\r\n\t\tif (!!parentCard) {\r\n\t\t\treturn parentCard.id;\r\n\t\t}\r\n\t}\r\n\t// Fallback to regex\r\n\tconst bgHeroSkinMatch = heroCardId.match(/(.*)_SKIN_.*/);\r\n\tif (bgHeroSkinMatch) {\r\n\t\treturn bgHeroSkinMatch[1];\r\n\t}\r\n\treturn heroCardId;\r\n};\r\n\r\nexport const getTribeName = (tribe: Race, i18n: { translateString: (input: string) => string }): string =>\r\n\ti18n.translateString(`app.battlegrounds.tribes.${Race[tribe]?.toLowerCase()}`);\r\n\r\nexport const getTribeIcon = (tribe: string | Race): string => {\r\n\tconst referenceCardId = getReferenceTribeCardId(tribe);\r\n\treturn `https://static.zerotoheroes.com/hearthstone/cardart/256x/${referenceCardId}.jpg`;\r\n};\r\n\r\nexport const getReferenceTribeCardId = (tribe: string | Race): string => {\r\n\tlet referenceCardId: string;\r\n\ttribe = (tribe as string)?.padStart ? (tribe as string).toLowerCase() : tribe;\r\n\tswitch (tribe) {\r\n\t\tcase 'mech':\r\n\t\tcase Race.MECH:\r\n\t\t\treferenceCardId = CardIds.DeflectOBot_BGS_071;\r\n\t\t\tbreak;\r\n\t\tcase 'beast':\r\n\t\tcase Race.BEAST:\r\n\t\t\treferenceCardId = CardIds.MamaBear_BGS_021;\r\n\t\t\tbreak;\r\n\t\tcase 'demon':\r\n\t\tcase Race.DEMON:\r\n\t\t\treferenceCardId = CardIds.ImpulsiveTrickster_BG21_006;\r\n\t\t\tbreak;\r\n\t\tcase 'dragon':\r\n\t\tcase Race.DRAGON:\r\n\t\t\treferenceCardId = CardIds.KalecgosArcaneAspect_BGS_041;\r\n\t\t\tbreak;\r\n\t\tcase 'murloc':\r\n\t\tcase Race.MURLOC:\r\n\t\t\treferenceCardId = CardIds.RockpoolHunter_BG_UNG_073;\r\n\t\t\tbreak;\r\n\t\tcase 'pirate':\r\n\t\tcase Race.PIRATE:\r\n\t\t\treferenceCardId = CardIds.Scallywag_BGS_061;\r\n\t\t\tbreak;\r\n\t\tcase 'elemental':\r\n\t\tcase Race.ELEMENTAL:\r\n\t\t\treferenceCardId = CardIds.Sellemental_BGS_115;\r\n\t\t\tbreak;\r\n\t\tcase 'naga':\r\n\t\tcase Race.NAGA:\r\n\t\t\treferenceCardId = CardIds.ShellCollector_BG23_002;\r\n\t\t\tbreak;\r\n\t\tcase 'quilboar':\r\n\t\tcase Race.QUILBOAR:\r\n\t\t\treferenceCardId = CardIds.SunBaconRelaxer_BG20_301;\r\n\t\t\tbreak;\r\n\t\tcase 'undead':\r\n\t\tcase Race.UNDEAD:\r\n\t\t\treferenceCardId = CardIds.EternalKnight_BG25_008;\r\n\t\t\tbreak;\r\n\t\tcase 'all':\r\n\t\tcase Race.ALL:\r\n\t\t\treferenceCardId = CardIds.Amalgadon_BGS_069;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treferenceCardId = CardIds.PatientScout_BG24_715;\r\n\t\t\tbreak;\r\n\t}\r\n\treturn referenceCardId;\r\n};\r\n\r\nexport const getHeroPower = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\tswitch (normalized) {\r\n\t\tcase 'TB_BaconShop_HERO_01':\r\n\t\t\treturn 'TB_BaconShop_HP_001';\r\n\t\tcase 'TB_BaconShop_HERO_02':\r\n\t\t\treturn 'TB_BaconShop_HP_011';\r\n\t\tcase 'TB_BaconShop_HERO_08':\r\n\t\t\treturn 'TB_BaconShop_HP_069';\r\n\t\tcase CardIds.RagnarosTheFirelord_TB_BaconShop_HERO_11:\r\n\t\t\treturn CardIds.DieInsects_TB_BaconShop_HP_087;\r\n\t\tcase 'TB_BaconShop_HERO_12':\r\n\t\t\treturn 'TB_BaconShop_HP_041';\r\n\t\tcase CardIds.QueenWagtoggle_TB_BaconShop_HERO_14:\r\n\t\t\treturn CardIds.WaxWarband;\r\n\t\tcase 'TB_BaconShop_HERO_15':\r\n\t\t\treturn 'TB_BaconShop_HP_010';\r\n\t\tcase 'TB_BaconShop_HERO_16':\r\n\t\t\treturn 'TB_BaconShop_HP_044';\r\n\t\tcase 'TB_BaconShop_HERO_17':\r\n\t\t\treturn 'TB_BaconShop_HP_015';\r\n\t\tcase 'TB_BaconShop_HERO_18':\r\n\t\t\treturn 'TB_BaconShop_HP_072';\r\n\t\tcase 'TB_BaconShop_HERO_20':\r\n\t\t\treturn 'TB_BaconShop_HP_018';\r\n\t\tcase 'TB_BaconShop_HERO_21':\r\n\t\t\treturn 'TB_BaconShop_HP_020';\r\n\t\tcase 'TB_BaconShop_HERO_22':\r\n\t\t\treturn 'TB_BaconShop_HP_024';\r\n\t\tcase CardIds.Shudderwock_TB_BaconShop_HERO_23:\r\n\t\t\treturn CardIds.SnickerSnack;\r\n\t\tcase 'TB_BaconShop_HERO_25':\r\n\t\t\treturn 'TB_BaconShop_HP_049';\r\n\t\tcase 'TB_BaconShop_HERO_27':\r\n\t\t\treturn 'TB_BaconShop_HP_014';\r\n\t\tcase 'TB_BaconShop_HERO_28':\r\n\t\t\treturn 'TB_BaconShop_HP_028';\r\n\t\tcase 'TB_BaconShop_HERO_30':\r\n\t\t\treturn 'TB_BaconShop_HP_043';\r\n\t\tcase 'TB_BaconShop_HERO_31':\r\n\t\t\treturn 'TB_BaconShop_HP_009';\r\n\t\tcase 'TB_BaconShop_HERO_33':\r\n\t\t\treturn 'TB_BaconShop_HP_033';\r\n\t\tcase 'TB_BaconShop_HERO_34':\r\n\t\t\treturn 'TB_BaconShop_HP_035';\r\n\t\tcase 'TB_BaconShop_HERO_35':\r\n\t\t\treturn 'TB_BaconShop_HP_039';\r\n\t\tcase 'TB_BaconShop_HERO_36':\r\n\t\t\treturn 'TB_BaconShop_HP_042';\r\n\t\tcase 'TB_BaconShop_HERO_37':\r\n\t\t\treturn 'TB_BaconShop_HP_036';\r\n\t\tcase 'TB_BaconShop_HERO_38':\r\n\t\t\treturn 'TB_BaconShop_HP_038';\r\n\t\tcase 'TB_BaconShop_HERO_39':\r\n\t\t\treturn 'TB_BaconShop_HP_040';\r\n\t\tcase 'TB_BaconShop_HERO_40':\r\n\t\t\treturn 'TB_BaconShop_HP_057';\r\n\t\tcase 'TB_BaconShop_HERO_41':\r\n\t\t\treturn 'TB_BaconShop_HP_046';\r\n\t\tcase 'TB_BaconShop_HERO_42':\r\n\t\t\treturn 'TB_BaconShop_HP_047';\r\n\t\tcase 'TB_BaconShop_HERO_43':\r\n\t\t\treturn 'TB_BaconShop_HP_048';\r\n\t\t// case 'TB_BaconShop_HERO_44':\r\n\t\t// \treturn 'TB_BaconShop_HP_050';\r\n\t\tcase 'TB_BaconShop_HERO_45':\r\n\t\t\treturn 'TB_BaconShop_HP_053';\r\n\t\tcase 'TB_BaconShop_HERO_47':\r\n\t\t\treturn 'TB_BaconShop_HP_051';\r\n\t\tcase 'TB_BaconShop_HERO_49':\r\n\t\t\treturn 'TB_BaconShop_HP_054';\r\n\t\tcase 'TB_BaconShop_HERO_50':\r\n\t\t\treturn 'TB_BaconShop_HP_077';\r\n\t\tcase 'TB_BaconShop_HERO_52':\r\n\t\t\treturn 'TB_BaconShop_HP_061';\r\n\t\tcase 'TB_BaconShop_HERO_53':\r\n\t\t\treturn 'TB_BaconShop_HP_062';\r\n\t\tcase 'TB_BaconShop_HERO_55':\r\n\t\t\treturn 'TB_BaconShop_HP_056';\r\n\t\tcase 'TB_BaconShop_HERO_56':\r\n\t\t\treturn 'TB_BaconShop_HP_064';\r\n\t\tcase 'TB_BaconShop_HERO_57':\r\n\t\t\treturn 'TB_BaconShop_HP_063';\r\n\t\tcase 'TB_BaconShop_HERO_58':\r\n\t\t\treturn 'TB_BaconShop_HP_052';\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HP_065t2';\r\n\t\tcase 'TB_BaconShop_HERO_59':\r\n\t\t\treturn 'TB_BaconShop_HP_065';\r\n\t\tcase 'TB_BaconShop_HERO_60':\r\n\t\t\treturn 'TB_BaconShop_HP_066';\r\n\t\tcase 'TB_BaconShop_HERO_61':\r\n\t\t\treturn 'TB_BaconShop_HP_067';\r\n\t\tcase 'TB_BaconShop_HERO_62':\r\n\t\t\treturn 'TB_BaconShop_HP_068';\r\n\t\tcase 'TB_BaconShop_HERO_64':\r\n\t\t\treturn 'TB_BaconShop_HP_074';\r\n\t\tcase CardIds.CaptainHooktusk_TB_BaconShop_HERO_67:\r\n\t\t\treturn CardIds.TrashForTreasure;\r\n\t\tcase 'TB_BaconShop_HERO_68':\r\n\t\t\treturn 'TB_BaconShop_HP_076';\r\n\t\tcase 'TB_BaconShop_HERO_70':\r\n\t\t\treturn 'TB_BaconShop_HP_080';\r\n\t\tcase 'TB_BaconShop_HERO_71':\r\n\t\t\treturn 'TB_BaconShop_HP_084';\r\n\t\tcase 'TB_BaconShop_HERO_72':\r\n\t\t\treturn 'TB_BaconShop_HP_081';\r\n\t\tcase 'TB_BaconShop_HERO_74':\r\n\t\t\treturn 'TB_BaconShop_HP_082';\r\n\t\tcase CardIds.Chenvaala_TB_BaconShop_HERO_78:\r\n\t\t\treturn CardIds.Avalanche_TB_BaconShop_HP_088;\r\n\t\tcase CardIds.Rakanishu_TB_BaconShop_HERO_75:\r\n\t\t\treturn CardIds.TavernLighting;\r\n\t\tcase CardIds.Alakir:\r\n\t\t\treturn CardIds.SwattingInsects;\r\n\t\tcase CardIds.ZephrysTheGreat_TB_BaconShop_HERO_91:\r\n\t\t\treturn CardIds.ThreeWishes;\r\n\t\tcase CardIds.SilasDarkmoon_TB_BaconShop_HERO_90:\r\n\t\t\treturn CardIds.ComeOneComeAll;\r\n\t\tcase CardIds.Cthun_TB_BaconShop_HERO_29:\r\n\t\t\treturn CardIds.SaturdayCthuns;\r\n\t\tcase CardIds.Nzoth:\r\n\t\t\treturn CardIds.AvatarOfNzoth;\r\n\t\tcase CardIds.Yshaarj:\r\n\t\t\treturn CardIds.EmbraceYourRage;\r\n\t\tcase CardIds.Tickatus_TB_BaconShop_HERO_94:\r\n\t\t\treturn CardIds.PrizeWall;\r\n\t\tcase CardIds.Greybough_TB_BaconShop_HERO_95:\r\n\t\t\treturn CardIds.SproutItOut;\r\n\t\tcase CardIds.OverlordSaurfang_BG20_HERO_102:\r\n\t\t\treturn CardIds.OverlordSaurfang_ForTheHorde;\r\n\t\tcase CardIds.DeathSpeakerBlackthorn_BG20_HERO_103:\r\n\t\t\treturn CardIds.DeathSpeakerBlackthorn_Bloodbound;\r\n\t\tcase CardIds.Voljin_BG20_HERO_201:\r\n\t\t\treturn CardIds.Voljin_SpiritSwap_BG20_HERO_201p;\r\n\t\tcase CardIds.Xyrella_BG20_HERO_101:\r\n\t\t\treturn CardIds.Xyrella_SeeTheLight;\r\n\t\tcase CardIds.MutanusTheDevourer_BG20_HERO_301:\r\n\t\t\treturn CardIds.MutanusTheDevourer_Devour;\r\n\t\tcase CardIds.GuffRunetotem_BG20_HERO_242:\r\n\t\t\treturn CardIds.GuffRunetotem_NaturalBalance;\r\n\t\tcase CardIds.KurtrusAshfallen_BG20_HERO_280:\r\n\t\t\treturn CardIds.KurtrusAshfallen_GlaiveRicochet;\r\n\t\tcase CardIds.Galewing:\r\n\t\t\treturn CardIds.Galewing_DungarsGryphon;\r\n\t\tcase CardIds.TradePrinceGallywix_TB_BaconShop_HERO_10:\r\n\t\t\treturn CardIds.SmartSavings;\r\n\t\tcase CardIds.MasterNguyen:\r\n\t\t\treturn CardIds.MasterNguyen_PowerOfTheStorm;\r\n\t\tcase CardIds.CarielRoame_BG21_HERO_000:\r\n\t\t\treturn CardIds.CarielRoame_Conviction;\r\n\t\tcase CardIds.Sneed_BG21_HERO_030:\r\n\t\t\treturn CardIds.Sneed_SneedsReplicator;\r\n\t\tcase CardIds.CookieTheCook_BG21_HERO_020:\r\n\t\t\treturn CardIds.CookieTheCook_StirThePot;\r\n\t\tcase CardIds.TamsinRoame_BG20_HERO_282:\r\n\t\t\treturn CardIds.TamsinRoame_FragrantPhylactery;\r\n\t\tcase CardIds.ScabbsCutterbutter_BG21_HERO_010:\r\n\t\t\treturn CardIds.ScabbsCutterbutter_ISpy;\r\n\t\tcase CardIds.Brukan_BG22_HERO_001:\r\n\t\t\treturn CardIds.Brukan_EmbraceTheElements;\r\n\t\tcase CardIds.Drekthar_BG22_HERO_002:\r\n\t\t\treturn CardIds.Drekthar_LeadTheFrostwolves;\r\n\t\tcase CardIds.VanndarStormpike_BG22_HERO_003:\r\n\t\t\treturn CardIds.VanndarStormpike_LeadTheStormpikes;\r\n\t\tcase CardIds.TavishStormpike_BG22_HERO_000:\r\n\t\t\treturn CardIds.TavishStormpike_Deadeye;\r\n\t\tcase CardIds.VardenDawngrasp_BG22_HERO_004:\r\n\t\t\treturn CardIds.VardenDawngrasp_TwiceAsNice;\r\n\t\tcase CardIds.Rokara_BG20_HERO_100:\r\n\t\t\treturn CardIds.Rokara_GloryOfCombat;\r\n\t\tcase CardIds.Onyxia_BG22_HERO_305:\r\n\t\t\treturn CardIds.Onyxia_Broodmother;\r\n\t\tcase CardIds.AmbassadorFaelin_BG22_HERO_201:\r\n\t\t\treturn CardIds.AmbassadorFaelin_ExpeditionPlans;\r\n\t\tcase CardIds.IniStormcoil_BG22_HERO_200:\r\n\t\t\treturn CardIds.IniStormcoil_Mechgyver;\r\n\t\tcase CardIds.QueenAzshara_BG22_HERO_007:\r\n\t\t\treturn CardIds.QueenAzshara_AzsharasAmbition;\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_NagaConquest;\r\n\t\tcase CardIds.Ozumat_BG23_HERO_201:\r\n\t\t\treturn CardIds.Ozumat_Tentacular;\r\n\t\tcase CardIds.LadyVashj_BG23_HERO_304:\r\n\t\t\treturn CardIds.LadyVashj_RelicsOfTheDeep;\r\n\t\tcase CardIds.HeistbaronTogwaggle_BG23_HERO_305:\r\n\t\t\treturn CardIds.HeistbaronTogwaggle_ThePerfectCrime;\r\n\t\tcase CardIds.MurlocHolmes_BG23_HERO_303:\r\n\t\t\treturn CardIds.MurlocHolmes_DetectiveForHire;\r\n\t\tcase CardIds.SireDenathrius_BG24_HERO_100:\r\n\t\t\treturn CardIds.SireDenathrius_Whodunitquestion;\r\n\t\tcase CardIds.SylvanasWindrunner_BG23_HERO_306:\r\n\t\t\treturn CardIds.SylvanasWindrunner_ReclaimedSouls;\r\n\t\tcase CardIds.TheJailer_TB_BaconShop_HERO_702:\r\n\t\t\treturn CardIds.RunicEmpowerment;\r\n\t\tcase CardIds.EnhanceOMechano_BG24_HERO_204:\r\n\t\t\treturn CardIds.EnhanceOMechano_Enhancification;\r\n\t\tcase CardIds.ProfessorPutricide_BG25_HERO_100:\r\n\t\t\treturn CardIds.ProfessorPutricide_BuildAnUndead;\r\n\t\tcase CardIds.TeronGorefiend_BG25_HERO_103:\r\n\t\t\treturn CardIds.TeronGorefiend_RapidReanimation;\r\n\t\tcase CardIds.ETCBandManager_BG25_HERO_105:\r\n\t\t\treturn CardIds.ETCBandManager_SignANewArtist;\r\n\t\tcase CardIds.RockMasterVoone_BG26_HERO_104:\r\n\t\t\treturn CardIds.RockMasterVoone_UpbeatHarmony;\r\n\t\tcase CardIds.IngeTheIronHymn:\r\n\t\t\treturn CardIds.IngeTheIronHymn_MajorHymn;\r\n\t\tcase CardIds.CapnHoggarr_BG26_HERO_101:\r\n\t\t\treturn CardIds.CapnHoggarr_ImTheCapnNow;\r\n\t\tcase CardIds.Diablo:\r\n\t\t\treturn CardIds.Diablo_RealmOfTerror;\r\n\t\tcase CardIds.ThorimStormlord_BG27_HERO_801:\r\n\t\t\treturn CardIds.ThorimStormlord_ChooseYourChampion_BG27_HERO_801p2;\r\n\t\tcase CardIds.SnakeEyes_BG28_HERO_400:\r\n\t\t\treturn CardIds.SnakeEyes_LuckyRoll_BG28_HERO_400p;\r\n\t\tcase CardIds.TaethelanBloodwatcher_BG28_HERO_800:\r\n\t\t\treturn CardIds.TaethelanBloodwatcher_ReliquaryResearch_BG28_HERO_800p;\r\n\t\tcase CardIds.DoctorHollidae_BG28_HERO_801:\r\n\t\t\treturn CardIds.DoctorHollidae_BlessingOfTheNineFrogs_BG28_HERO_801p;\r\n\r\n\t\tcase '':\r\n\t\t\treturn null; // new heroes\r\n\t}\r\n};\r\n"]}
|
|
@@ -74,6 +74,8 @@ const boosterIdToSetId = (boosterId) => {
|
|
|
74
74
|
return 'wild_west';
|
|
75
75
|
case public_api_1.BoosterType.WILD_WEST2:
|
|
76
76
|
return 'wild_west2';
|
|
77
|
+
case public_api_1.BoosterType.WHIZBANGS_WORKSHOP:
|
|
78
|
+
return 'whizbangs_workshop';
|
|
77
79
|
default:
|
|
78
80
|
return null;
|
|
79
81
|
}
|
|
@@ -141,6 +143,8 @@ const getDefaultBoosterIdForSetId = (setId) => {
|
|
|
141
143
|
return public_api_1.BoosterType.TITANS;
|
|
142
144
|
case 'caverns_of_time':
|
|
143
145
|
return public_api_1.BoosterType.CAVERNS_OF_TIME;
|
|
146
|
+
case 'whizbangs_workshop':
|
|
147
|
+
return public_api_1.BoosterType.WHIZBANGS_WORKSHOP;
|
|
144
148
|
default:
|
|
145
149
|
console.warn('no default booster type for set id', setId);
|
|
146
150
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-utils.js","sourceRoot":"","sources":["../../src/services/collection-utils.ts"],"names":[],"mappings":";;;AAAA,8CAA4C;AAErC,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAU,EAAE;IAClE,QAAQ,SAAS,EAAE;QAClB,KAAK,wBAAW,CAAC,WAAW;YAC3B,OAAO,SAAS,CAAC;QAClB,KAAK,wBAAW,CAAC,OAAO,CAAC;QACzB,KAAK,wBAAW,CAAC,mBAAmB;YACnC,OAAO,SAAS,CAAC;QAClB,KAAK,wBAAW,CAAC,iBAAiB;YACjC,OAAO,KAAK,CAAC;QACd,KAAK,wBAAW,CAAC,oBAAoB;YACpC,OAAO,KAAK,CAAC;QACd,KAAK,wBAAW,CAAC,QAAQ,CAAC;QAC1B,KAAK,wBAAW,CAAC,kBAAkB;YAClC,OAAO,IAAI,CAAC;QACb,KAAK,wBAAW,CAAC,YAAY;YAC5B,OAAO,OAAO,CAAC;QAChB,KAAK,wBAAW,CAAC,MAAM;YACtB,OAAO,QAAQ,CAAC;QACjB,KAAK,wBAAW,CAAC,aAAa;YAC7B,OAAO,UAAU,CAAC;QACnB,KAAK,wBAAW,CAAC,qBAAqB;YACrC,OAAO,cAAc,CAAC;QACvB,KAAK,wBAAW,CAAC,SAAS;YACzB,OAAO,SAAS,CAAC;QAClB,KAAK,wBAAW,CAAC,oBAAoB;YACpC,OAAO,UAAU,CAAC;QACnB,KAAK,wBAAW,CAAC,iBAAiB;YACjC,OAAO,OAAO,CAAC;QAChB,KAAK,wBAAW,CAAC,OAAO;YACvB,OAAO,SAAS,CAAC;QAClB,KAAK,wBAAW,CAAC,KAAK;YACrB,OAAO,OAAO,CAAC;QAChB,KAAK,wBAAW,CAAC,OAAO;YACvB,OAAO,SAAS,CAAC;QAClB,KAAK,wBAAW,CAAC,YAAY;YAC5B,OAAO,cAAc,CAAC;QACvB,KAAK,wBAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,wBAAW,CAAC,kBAAkB;YAClC,OAAO,aAAa,CAAC;QACtB,KAAK,wBAAW,CAAC,cAAc,CAAC;QAChC,KAAK,wBAAW,CAAC,qBAAqB;YACrC,OAAO,gBAAgB,CAAC;QACzB,KAAK,wBAAW,CAAC,WAAW,CAAC;QAC7B,KAAK,wBAAW,CAAC,kBAAkB;YAClC,OAAO,aAAa,CAAC;QACtB,KAAK,wBAAW,CAAC,SAAS,CAAC;QAC3B,KAAK,wBAAW,CAAC,gBAAgB;YAChC,OAAO,WAAW,CAAC;QACpB,KAAK,wBAAW,CAAC,cAAc,CAAC;QAChC,KAAK,wBAAW,CAAC,qBAAqB;YACrC,OAAO,gBAAgB,CAAC;QACzB,KAAK,wBAAW,CAAC,eAAe,CAAC;QACjC,KAAK,wBAAW,CAAC,sBAAsB;YACtC,OAAO,iBAAiB,CAAC;QAC1B,KAAK,wBAAW,CAAC,UAAU,CAAC;QAC5B,KAAK,wBAAW,CAAC,iBAAiB;YACjC,OAAO,YAAY,CAAC;QACrB,KAAK,wBAAW,CAAC,uBAAuB,CAAC;QACzC,KAAK,wBAAW,CAAC,8BAA8B;YAC9C,OAAO,yBAAyB,CAAC;QAClC,KAAK,wBAAW,CAAC,mBAAmB,CAAC;QACrC,KAAK,wBAAW,CAAC,0BAA0B;YAC1C,OAAO,qBAAqB,CAAC;QAC9B,KAAK,wBAAW,CAAC,MAAM,CAAC;QACxB,KAAK,wBAAW,CAAC,aAAa;YAC7B,OAAO,QAAQ,CAAC;QACjB,KAAK,wBAAW,CAAC,eAAe;YAC/B,OAAO,iBAAiB,CAAC;QAC1B,KAAK,wBAAW,CAAC,SAAS;YACzB,OAAO,WAAW,CAAC;QACpB,KAAK,wBAAW,CAAC,UAAU;YAC1B,OAAO,YAAY,CAAC;QACrB;YAEC,OAAO,IAAI,CAAC;KACb;AACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"collection-utils.js","sourceRoot":"","sources":["../../src/services/collection-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { BoosterType } from '../public-api';\r\n\r\nexport const boosterIdToSetId = (boosterId: BoosterType): string => {\r\n\tswitch (boosterId) {\r\n\t\tcase BoosterType.MERCENARIES:\r\n\t\t\treturn 'lettuce';\r\n\t\tcase BoosterType.CLASSIC:\r\n\t\tcase BoosterType.GOLDEN_CLASSIC_PACK:\r\n\t\t\treturn 'expert1';\r\n\t\tcase BoosterType.GOBLINS_VS_GNOMES:\r\n\t\t\treturn 'gvg';\r\n\t\tcase BoosterType.THE_GRAND_TOURNAMENT:\r\n\t\t\treturn 'tgt';\r\n\t\tcase BoosterType.OLD_GODS:\r\n\t\tcase BoosterType.FIRST_PURCHASE_OLD:\r\n\t\t\treturn 'og';\r\n\t\tcase BoosterType.MEAN_STREETS:\r\n\t\t\treturn 'gangs';\r\n\t\tcase BoosterType.UNGORO:\r\n\t\t\treturn 'ungoro';\r\n\t\tcase BoosterType.FROZEN_THRONE:\r\n\t\t\treturn 'icecrown';\r\n\t\tcase BoosterType.KOBOLDS_AND_CATACOMBS:\r\n\t\t\treturn 'lootapalooza';\r\n\t\tcase BoosterType.WITCHWOOD:\r\n\t\t\treturn 'gilneas';\r\n\t\tcase BoosterType.THE_BOOMSDAY_PROJECT:\r\n\t\t\treturn 'boomsday';\r\n\t\tcase BoosterType.RASTAKHANS_RUMBLE:\r\n\t\t\treturn 'troll';\r\n\t\tcase BoosterType.DALARAN:\r\n\t\t\treturn 'dalaran';\r\n\t\tcase BoosterType.ULDUM:\r\n\t\t\treturn 'uldum';\r\n\t\tcase BoosterType.DRAGONS:\r\n\t\t\treturn 'dragons';\r\n\t\tcase BoosterType.BLACK_TEMPLE:\r\n\t\t\treturn 'black_temple';\r\n\t\tcase BoosterType.SCHOLOMANCE:\r\n\t\tcase BoosterType.GOLDEN_SCHOLOMANCE:\r\n\t\t\treturn 'scholomance';\r\n\t\tcase BoosterType.DARKMOON_FAIRE:\r\n\t\tcase BoosterType.GOLDEN_DARKMOON_FAIRE:\r\n\t\t\treturn 'darkmoon_faire';\r\n\t\tcase BoosterType.THE_BARRENS:\r\n\t\tcase BoosterType.GOLDEN_THE_BARRENS:\r\n\t\t\treturn 'the_barrens';\r\n\t\tcase BoosterType.STORMWIND:\r\n\t\tcase BoosterType.STORMWIND_GOLDEN:\r\n\t\t\treturn 'stormwind';\r\n\t\tcase BoosterType.ALTERAC_VALLEY:\r\n\t\tcase BoosterType.ALTERAC_VALLEY_GOLDEN:\r\n\t\t\treturn 'alterac_valley';\r\n\t\tcase BoosterType.THE_SUNKEN_CITY:\r\n\t\tcase BoosterType.GOLDEN_THE_SUNKEN_CITY:\r\n\t\t\treturn 'the_sunken_city';\r\n\t\tcase BoosterType.REVENDRETH:\r\n\t\tcase BoosterType.GOLDEN_REVENDRETH:\r\n\t\t\treturn 'revendreth';\r\n\t\tcase BoosterType.RETURN_OF_THE_LICH_KING:\r\n\t\tcase BoosterType.GOLDEN_RETURN_OF_THE_LICH_KING:\r\n\t\t\treturn 'return_of_the_lich_king';\r\n\t\tcase BoosterType.BATTLE_OF_THE_BANDS:\r\n\t\tcase BoosterType.GOLDEN_BATTLE_OF_THE_BANDS:\r\n\t\t\treturn 'battle_of_the_bands';\r\n\t\tcase BoosterType.TITANS:\r\n\t\tcase BoosterType.GOLDEN_TITANS:\r\n\t\t\treturn 'titans';\r\n\t\tcase BoosterType.CAVERNS_OF_TIME:\r\n\t\t\treturn 'caverns_of_time';\r\n\t\tcase BoosterType.WILD_WEST:\r\n\t\t\treturn 'wild_west';\r\n\t\tcase BoosterType.WILD_WEST2:\r\n\t\t\treturn 'wild_west2';\r\n\t\tcase BoosterType.WHIZBANGS_WORKSHOP:\r\n\t\t\treturn 'whizbangs_workshop';\r\n\t\tdefault:\r\n\t\t\t// console.warn('unsupported booster type', boosterId);\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\nexport const getDefaultBoosterIdForSetId = (setId: string): BoosterType => {\r\n\tswitch (setId) {\r\n\t\tcase 'expert1':\r\n\t\t\treturn BoosterType.CLASSIC;\r\n\t\tcase 'gvg':\r\n\t\t\treturn BoosterType.GOBLINS_VS_GNOMES;\r\n\t\tcase 'tgt':\r\n\t\t\treturn BoosterType.THE_GRAND_TOURNAMENT;\r\n\t\tcase 'og':\r\n\t\t\treturn BoosterType.OLD_GODS;\r\n\t\tcase 'gangs':\r\n\t\t\treturn BoosterType.MEAN_STREETS;\r\n\t\tcase 'ungoro':\r\n\t\t\treturn BoosterType.UNGORO;\r\n\t\tcase 'icecrown':\r\n\t\t\treturn BoosterType.FROZEN_THRONE;\r\n\t\tcase 'lootapalooza':\r\n\t\t\treturn BoosterType.KOBOLDS_AND_CATACOMBS;\r\n\t\tcase 'gilneas':\r\n\t\t\treturn BoosterType.WITCHWOOD;\r\n\t\tcase 'boomsday':\r\n\t\t\treturn BoosterType.THE_BOOMSDAY_PROJECT;\r\n\t\tcase 'troll':\r\n\t\tcase 'rumble':\r\n\t\t\treturn BoosterType.RASTAKHANS_RUMBLE;\r\n\t\tcase 'dalaran':\r\n\t\t\treturn BoosterType.DALARAN;\r\n\t\tcase 'uldum':\r\n\t\t\treturn BoosterType.ULDUM;\r\n\t\tcase 'dragons':\r\n\t\t\treturn BoosterType.DRAGONS;\r\n\t\tcase 'black_temple':\r\n\t\t\treturn BoosterType.BLACK_TEMPLE;\r\n\t\tcase 'scholomance':\r\n\t\t\treturn BoosterType.SCHOLOMANCE;\r\n\t\tcase 'darkmoon_faire':\r\n\t\tcase 'darkmoon_races':\r\n\t\t\treturn BoosterType.DARKMOON_FAIRE;\r\n\t\tcase 'the_barrens':\r\n\t\tcase 'wailing_caverns':\r\n\t\t\treturn BoosterType.THE_BARRENS;\r\n\t\tcase 'stormwind':\r\n\t\tcase 'deadmines':\r\n\t\t\treturn BoosterType.STORMWIND;\r\n\t\tcase 'alterac_valley':\r\n\t\tcase 'onyxias_lair':\r\n\t\t\treturn BoosterType.ALTERAC_VALLEY;\r\n\t\tcase 'the_sunken_city':\r\n\t\tcase 'throne_of_tides':\r\n\t\t\treturn BoosterType.THE_SUNKEN_CITY;\r\n\t\tcase 'revendreth':\r\n\t\tcase 'maw_and_disorder':\r\n\t\t\treturn BoosterType.REVENDRETH;\r\n\t\tcase 'return_of_the_lich_king':\r\n\t\tcase 'path_of_arthas':\r\n\t\t\treturn BoosterType.RETURN_OF_THE_LICH_KING;\r\n\t\tcase 'battle_of_the_bands':\r\n\t\t\treturn BoosterType.BATTLE_OF_THE_BANDS;\r\n\t\tcase 'titans':\r\n\t\t\treturn BoosterType.TITANS;\r\n\t\tcase 'caverns_of_time':\r\n\t\t\treturn BoosterType.CAVERNS_OF_TIME;\r\n\t\tcase 'whizbangs_workshop':\r\n\t\t\treturn BoosterType.WHIZBANGS_WORKSHOP;\r\n\t\tdefault:\r\n\t\t\tconsole.warn('no default booster type for set id', setId);\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\nexport const boosterIdToBoosterName = (\r\n\tboosterId: BoosterType,\r\n\ti18n: { translateString: (input: string) => string },\r\n): string => {\r\n\tlet normalizedBoosterId = boosterId;\r\n\tswitch (boosterId) {\r\n\t\tcase BoosterType.FIRST_PURCHASE_OLD:\r\n\t\t\tnormalizedBoosterId = BoosterType.OLD_GODS;\r\n\t}\r\n\treturn i18n.translateString(`global.pack.${BoosterType[normalizedBoosterId]?.toLowerCase()?.replace(/_/g, '-')}`);\r\n};\r\n"]}
|