@firestone-hs/reference-data 0.1.215 → 0.1.218

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.
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.getBaseCardId = exports.AllCardsService = void 0;
13
4
  const utils_1 = require("./utils");
@@ -31,34 +22,32 @@ class AllCardsService {
31
22
  getCards() {
32
23
  return Object.values(this.cache);
33
24
  }
34
- initializeCardsDb(version = '', cardsFile = 'cards_enUS.json') {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
37
- const allCards = Object.values(this.cache);
38
- if (!!(allCards === null || allCards === void 0 ? void 0 : allCards.length)) {
39
- resolve();
40
- return;
41
- }
42
- this.cache = {};
43
- this.cacheDbfId = {};
44
- const url = `${CARDS_CDN_URL}/${cardsFile}?v=${version}`;
45
- const cardsStr = yield utils_1.http(url);
46
- if (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {
47
- console.error('[all-cards] could not load cards', url, cardsStr);
48
- }
49
- else {
50
- const allCards = JSON.parse(cardsStr);
51
- for (const card of allCards) {
52
- if (card.id) {
53
- this.cache[card.id] = card;
54
- }
55
- if (card.dbfId) {
56
- this.cacheDbfId[card.dbfId] = card;
57
- }
25
+ async initializeCardsDb(version = '', cardsFile = 'cards_enUS.json') {
26
+ return new Promise(async (resolve, reject) => {
27
+ const allCards = Object.values(this.cache);
28
+ if (!!(allCards === null || allCards === void 0 ? void 0 : allCards.length)) {
29
+ resolve();
30
+ return;
31
+ }
32
+ this.cache = {};
33
+ this.cacheDbfId = {};
34
+ const url = `${CARDS_CDN_URL}/${cardsFile}?v=${version}`;
35
+ const cardsStr = await utils_1.http(url);
36
+ if (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {
37
+ console.error('[all-cards] could not load cards', url, cardsStr);
38
+ }
39
+ else {
40
+ const allCards = JSON.parse(cardsStr);
41
+ for (const card of allCards) {
42
+ if (card.id) {
43
+ this.cache[card.id] = card;
44
+ }
45
+ if (card.dbfId) {
46
+ this.cacheDbfId[card.dbfId] = card;
58
47
  }
59
48
  }
60
- resolve();
61
- }));
49
+ }
50
+ resolve();
62
51
  });
63
52
  }
64
53
  }
@@ -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 { http } from './utils';\r\n\r\nconst CARDS_CDN_URL = 'https://static.zerotoheroes.com/hearthstone/jsoncards';\r\n\r\nexport class AllCardsService {\r\n\t// private allCards: ReferenceCard[];\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, errorWhenUndefined = true): ReferenceCard {\r\n\t\treturn this.cache[id] ?? ({} as ReferenceCard);\r\n\t\t// if (this.cache[id]) {\r\n\t\t// }\r\n\t\t// const candidates = Object.values(this.cache).filter((card) => card.id === id);\r\n\t\t// if (errorWhenUndefined && (!candidates || candidates.length === 0)) {\r\n\t\t// \tconsole.debug('Could not find card for id', id, new Error().stack);\r\n\t\t// \treturn {} as ReferenceCard;\r\n\t\t// }\r\n\t\t// if (candidates.length === 1) {\r\n\t\t// \tthis.cache[id] = candidates[0];\r\n\t\t// }\r\n\t\t// return candidates[0];\r\n\t}\r\n\r\n\tpublic getCardFromDbfId(dbfId: number): ReferenceCard {\r\n\t\treturn this.cacheDbfId[dbfId] ?? ({} as ReferenceCard);\r\n\t}\r\n\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.json'): 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\tconst allCards = 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\t\t\tthis.cache = {};\r\n\t\t\tthis.cacheDbfId = {};\r\n\t\t\tconst url = `${CARDS_CDN_URL}/${cardsFile}?v=${version}`;\r\n\t\t\tconst cardsStr: string = await http(url);\r\n\t\t\tif (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {\r\n\t\t\t\tconsole.error('[all-cards] could not load cards', url, cardsStr);\r\n\t\t\t} else {\r\n\t\t\t\t// console.debug('[all-cards] retrieved all cards');\r\n\t\t\t\tconst allCards: readonly ReferenceCard[] = JSON.parse(cardsStr);\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\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// Transfer Student should be handled on a case by case basis\r\n\t}\r\n\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":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\nimport { ReferenceCard } from '../models/reference-cards/reference-card';\r\nimport { http } from './utils';\r\n\r\nconst CARDS_CDN_URL = 'https://static.zerotoheroes.com/hearthstone/jsoncards';\r\n\r\nexport class AllCardsService {\r\n\t// private allCards: ReferenceCard[];\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, errorWhenUndefined = true): ReferenceCard {\r\n\t\treturn this.cache[id] ?? ({} as ReferenceCard);\r\n\t\t// if (this.cache[id]) {\r\n\t\t// }\r\n\t\t// const candidates = Object.values(this.cache).filter((card) => card.id === id);\r\n\t\t// if (errorWhenUndefined && (!candidates || candidates.length === 0)) {\r\n\t\t// \tconsole.debug('Could not find card for id', id, new Error().stack);\r\n\t\t// \treturn {} as ReferenceCard;\r\n\t\t// }\r\n\t\t// if (candidates.length === 1) {\r\n\t\t// \tthis.cache[id] = candidates[0];\r\n\t\t// }\r\n\t\t// return candidates[0];\r\n\t}\r\n\r\n\tpublic getCardFromDbfId(dbfId: number): ReferenceCard {\r\n\t\treturn this.cacheDbfId[dbfId] ?? ({} as ReferenceCard);\r\n\t}\r\n\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.json'): 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\tconst allCards = 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\t\t\tthis.cache = {};\r\n\t\t\tthis.cacheDbfId = {};\r\n\t\t\tconst url = `${CARDS_CDN_URL}/${cardsFile}?v=${version}`;\r\n\t\t\tconst cardsStr: string = await http(url);\r\n\t\t\tif (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {\r\n\t\t\t\tconsole.error('[all-cards] could not load cards', url, cardsStr);\r\n\t\t\t} else {\r\n\t\t\t\t// console.debug('[all-cards] retrieved all cards');\r\n\t\t\t\tconst allCards: readonly ReferenceCard[] = JSON.parse(cardsStr);\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\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// Transfer Student should be handled on a case by case basis\r\n\t}\r\n\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"]}
@@ -8,7 +8,6 @@ export declare const duelsActivePool2UltraRare: CardIds[];
8
8
  export declare const allDuelsTreasureCardIds: CardIds[];
9
9
  export declare const allDuelsHeroes: CardIds[];
10
10
  export declare const normalizeDuelsHeroCardId: (heroCardId: string) => string;
11
- export declare const allDuelsSignatureTreasures: CardIds[];
12
11
  export declare const duelsHeroConfigs: ({
13
12
  hero: CardIds;
14
13
  heroPowers: CardIds[];
@@ -20,3 +19,4 @@ export declare const duelsHeroConfigs: ({
20
19
  heroPowers: CardIds[];
21
20
  signatureTreasures: CardIds[];
22
21
  })[];
22
+ export declare const allDuelsSignatureTreasures: CardIds[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.duelsHeroConfigs = exports.allDuelsSignatureTreasures = exports.normalizeDuelsHeroCardId = exports.allDuelsHeroes = exports.allDuelsTreasureCardIds = exports.duelsActivePool2UltraRare = exports.duelsActivePool2 = exports.duelsActivePool1 = exports.duelsPassivePool2UltraRare = exports.duelsPassivePool2 = exports.duelsPassivePool1 = void 0;
3
+ exports.allDuelsSignatureTreasures = exports.duelsHeroConfigs = exports.normalizeDuelsHeroCardId = exports.allDuelsHeroes = exports.allDuelsTreasureCardIds = exports.duelsActivePool2UltraRare = exports.duelsActivePool2 = exports.duelsActivePool1 = exports.duelsPassivePool2UltraRare = exports.duelsPassivePool2 = exports.duelsPassivePool1 = void 0;
4
4
  exports.duelsPassivePool1 = [
5
5
  "PVPDR_SCH_Passive18",
6
6
  "PVPDR_BAR_Passive17",
@@ -76,7 +76,6 @@ exports.duelsPassivePool2 = [
76
76
  "PVPDR_AV_Passive17",
77
77
  "PVPDR_AV_Passive20",
78
78
  "LOOTA_824",
79
- "PVPDR_SW_Passive_06",
80
79
  "PVPDR_SW_Passive_04",
81
80
  "PVPDR_AV_Passive19",
82
81
  "ULDA_005",
@@ -90,7 +89,6 @@ exports.duelsPassivePool2 = [
90
89
  "PVPDR_BAR_Passive11",
91
90
  "PVPDR_BAR_Passive15",
92
91
  "PVPDR_AV_Passive34",
93
- "PVPDR_AV_Passive13",
94
92
  ];
95
93
  exports.duelsPassivePool2UltraRare = [
96
94
  "PVPDR_BAR_Passive28",
@@ -98,6 +96,7 @@ exports.duelsPassivePool2UltraRare = [
98
96
  "LOOTA_828",
99
97
  "PVPDR_SW_Passive_09",
100
98
  "PVPDR_AV_Passive06",
99
+ "PVPDR_SW_Passive_06",
101
100
  "PVPDR_SCH_Passive28",
102
101
  "PVPDR_AV_Passive07",
103
102
  "LOOTA_825",
@@ -105,6 +104,7 @@ exports.duelsPassivePool2UltraRare = [
105
104
  "PVPDR_AV_Passive04",
106
105
  "DALA_736",
107
106
  "LOOTA_845",
107
+ "PVPDR_AV_Passive13",
108
108
  ];
109
109
  exports.duelsActivePool1 = [
110
110
  "PVPDR_SCH_Active44",
@@ -196,6 +196,10 @@ exports.allDuelsHeroes = [
196
196
  "PVPDR_Hero_Lilian",
197
197
  "PVPDR_Hero_Vanndar",
198
198
  "PVPDR_Hero_DrekThar",
199
+ "PVPDR_Hero_Reno",
200
+ "PVPDR_Hero_Finley",
201
+ "PVPDR_Hero_Elise",
202
+ "PVPDR_Hero_Brann",
199
203
  ];
200
204
  const normalizeDuelsHeroCardId = (heroCardId) => {
201
205
  switch (heroCardId) {
@@ -216,81 +220,6 @@ const normalizeDuelsHeroCardId = (heroCardId) => {
216
220
  }
217
221
  };
218
222
  exports.normalizeDuelsHeroCardId = normalizeDuelsHeroCardId;
219
- exports.allDuelsSignatureTreasures = [
220
- "PVPDR_YOP_DemonHuntert2",
221
- "PVPDR_YOP_DemonHuntert1",
222
- "PVPDR_035",
223
- "PVPDR_DMF_DemonHuntert1",
224
- "PVPDR_SCH_DemonHuntert2",
225
- "PVPDR_YOP_DruidT1",
226
- "PVPDR_SCH_Druidt6",
227
- "PVPDR_SCH_Druidt5",
228
- "PVPDR_DMF_Druidt1",
229
- "PVPDR_SCH_Druidt2",
230
- "PVPDR_YOP_DruShaT1",
231
- "PVPDR_SCH_Huntert2",
232
- "PVPDR_YOP_HunterT2",
233
- "PVPDR_YOP_HunterT1",
234
- "PVPDR_036",
235
- "PVPDR_DMF_Huntert2",
236
- "PVPDR_YOP_DemHun",
237
- "PVPDR_YOP_RogMagT1",
238
- "PVPDR_042",
239
- "PVPDR_YOP_MageT3",
240
- "PVPDR_SCH_Maget5",
241
- "PVPDR_SCH_Maget3",
242
- "PVPDR_YOP_MageT1",
243
- "PVPDR_DMF_Paladint2",
244
- "PVPDR_YOP_PaladinT1",
245
- "PVPDR_YOP_PaladinT3",
246
- "PVPDR_DMF_Paladint1",
247
- "PVPDR_SCH_Paladint1",
248
- "PVPDR_YOP_WarPalT1",
249
- "PVPDR_DMF_Priestt2",
250
- "PVPDR_SCH_Priestt1",
251
- "PVPDR_YOP_PriestT2",
252
- "PVPDR_YOP_LocPriT1",
253
- "PVPDR_DMF_Priestt1",
254
- "PVPDR_YOP_PriestT1",
255
- "PVPDR_SCH_Roguet1",
256
- "PVPDR_DMF_Roguet2",
257
- "PVPDR_SCH_Roguet2",
258
- "PVPDR_YOP_RogueT1",
259
- "PVPDR_DMF_Roguet1",
260
- "PVPDR_YOP_ShamanT2",
261
- "PVPDR_SCH_Shamant2",
262
- "PVPDR_DMF_Shamant2",
263
- "PVPDR_YOP_ShamanT1",
264
- "PVPDR_DMF_Shamant1",
265
- "PVPDR_SCH_Warlockt4",
266
- "PVPDR_SCH_Warlockt5",
267
- "PVPDR_DMF_Warlockt3",
268
- "PVPDR_022",
269
- "PVPDR_SCH_Warlockt2",
270
- "PVPDR_SCH_Warriort1",
271
- "PVPDR_DMF_Warriort2",
272
- "PVPDR_DMF_Warriort1",
273
- "PVPDR_YOP_WarriorT1",
274
- "PVPDR_SCH_Warriort2",
275
- "PVPDR_GUEST_Diablot3",
276
- "PVPDR_GUEST_Diablot1",
277
- "PVPDR_GUEST_Diablot2",
278
- "PVPDR_GUEST_Diablot5",
279
- "PVPDR_GUEST_Diablot4",
280
- "PVPDR_GUEST_Diablot6s4",
281
- "PVPDR_AV_Neutralt7",
282
- "PVPDR_AV_Neutralt8",
283
- "PVPDR_AV_Neutralt9",
284
- "PVPDR_AV_Neutralt10",
285
- "PVPDR_AV_Neutralt11",
286
- "PVPDR_AV_Neutralt12",
287
- "PVPDR_AV_Neutralt1",
288
- "PVPDR_AV_Neutralt2",
289
- "PVPDR_AV_Neutralt3",
290
- "PVPDR_AV_Neutralt4",
291
- "PVPDR_AV_Neutralt5",
292
- "PVPDR_AV_Neutralt6",
293
- ];
294
223
  exports.duelsHeroConfigs = [
295
224
  {
296
225
  hero: "PVPDR_Hero_Stelina",
@@ -543,4 +472,5 @@ exports.duelsHeroConfigs = [
543
472
  ],
544
473
  },
545
474
  ];
475
+ exports.allDuelsSignatureTreasures = exports.duelsHeroConfigs.flatMap((info) => info.signatureTreasures);
546
476
  //# sourceMappingURL=duels-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"duels-utils.js","sourceRoot":"","sources":["../../src/services/duels-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\n\r\nexport const duelsPassivePool1 = [\r\n\tCardIds.AllShallServeTavernBrawl,\r\n\tCardIds.ArcaneFluxTavernBrawl,\r\n\tCardIds.ArcaniteCrystalTavernBrawl,\r\n\tCardIds.ArcticArmorTavernBrawl,\r\n\tCardIds.BeckoningBicornTavernBrawl,\r\n\tCardIds.BitterColdTavernBrawl,\r\n\tCardIds.BookOfWonders,\r\n\tCardIds.CannibalismTavernBrawl,\r\n\tCardIds.CoilCastingTavernBrawl,\r\n\tCardIds.CookiesLadleTavernBrawl,\r\n\t// CardIds.ConduitOfTheStormsTavernBrawl,\r\n\tCardIds.CrystalGemTavernBrawl,\r\n\tCardIds.DivineIlluminationTavernBrawl,\r\n\tCardIds.DragonbloodTavernBrawl,\r\n\tCardIds.DragonAffinityTavernBrawl,\r\n\tCardIds.EdgeOfDredgeTavernBrawl,\r\n\t// CardIds.EverChangingElixirTavernBrawl,\r\n\tCardIds.FirekeepersIdolTavernBrawl,\r\n\t// CardIds.FireshaperTavernBrawl,\r\n\tCardIds.ForgottenDepthsTavernBrawl,\r\n\tCardIds.FreezeSolidTavernBrawl,\r\n\tCardIds.FromTheSwampTavernBrawl,\r\n\tCardIds.GrommashsArmguardsTavernBrawl,\r\n\tCardIds.HoldTheLineTavernBrawl,\r\n\tCardIds.InspiringPresenceTavernBrawl,\r\n\tCardIds.InvigoratingLightTavernBrawl,\r\n\tCardIds.KindlingFlameTavernBrawl,\r\n\tCardIds.MendingPoolsTavernBrawl,\r\n\tCardIds.MysteriousTomeTavernBrawl,\r\n\tCardIds.NaturalForceTavernBrawl,\r\n\tCardIds.OpenTheDoorwaysTavernBrawl,\r\n\tCardIds.OptimizedPolarityTavernBrawl,\r\n\tCardIds.PillageTheFallenTavernBrawl,\r\n\tCardIds.PlaguebringerTavernBrawl,\r\n\tCardIds.PotionOfSparkingTavernBrawl,\r\n\tCardIds.RecyclingTavernBrawl,\r\n\t// CardIds.RhoninsScryingOrbTavernBrawl,\r\n\tCardIds.RighteousReservesTavernBrawl,\r\n\tCardIds.RingOfPhaseshiftingTavernBrawl,\r\n\tCardIds.RobeOfTheApprenticeTavernBrawl,\r\n\tCardIds.RobesOfShrinkingTavernBrawl,\r\n\tCardIds.RocketBackpacksTavernBrawl,\r\n\t// CardIds.ScatteredCaltropsTavernBrawl,\r\n\tCardIds.SmallBackpacksTavernBrawl,\r\n\t// CardIds.SmallPouchesTavernBrawl,\r\n\tCardIds.StaffOfPainTavernBrawl,\r\n\tCardIds.StakingAClaimTavernBrawl,\r\n\tCardIds.StarvingTavernBrawl,\r\n\tCardIds.StickyFingersTavernBrawl,\r\n\tCardIds.TheFloorIsLavaTavernBrawl,\r\n\tCardIds.UnholyGiftTavernBrawl,\r\n\tCardIds.UnlockedPotential,\r\n\tCardIds.WitherTheWeakTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2 = [\r\n\tCardIds.AllTogetherNowTavernBrawl,\r\n\tCardIds.AvengingArmamentsTavernBrawl,\r\n\tCardIds.BattleStanceTavernBrawl,\r\n\t// CardIds.Caltrops,\r\n\tCardIds.BronzeSignetTavernBrawl,\r\n\tCardIds.CloakOfEmeraldDreamsTavernBrawl,\r\n\tCardIds.CorruptedFelstoneTavernBrawl,\r\n\tCardIds.DeathlyDeathTavernBrawl,\r\n\tCardIds.DoubleTime,\r\n\tCardIds.DraconicDreamTavernBrawl,\r\n\tCardIds.DragonboneRitualTavernBrawl,\r\n\tCardIds.EerieStoneTavernBrawl,\r\n\tCardIds.ElixirOfVigorTavernBrawl,\r\n\tCardIds.EmeraldGogglesTavernBrawl,\r\n\tCardIds.EnduranceTrainingTavernBrawl,\r\n\tCardIds.FlamesOfTheKirinTorTavernBrawl,\r\n\tCardIds.FlameWavesTavernBrawl,\r\n\tCardIds.GlacialDownpourTavernBrawl,\r\n\tCardIds.GreedyGainsTavernBrawl,\r\n\tCardIds.GuardianLightTavernBrawl,\r\n\tCardIds.HagathasEmbraceTavernBrawl,\r\n\tCardIds.HeavyArmorTavernBrawl,\r\n\tCardIds.IdolsOfEluneTavernBrawl,\r\n\tCardIds.ImpCredibleTrousersTavernBrawl,\r\n\tCardIds.IronRootsTavernBrawl,\r\n\tCardIds.KhadgarsScryingOrb,\r\n\tCardIds.LegendaryLootTavernBrawl,\r\n\tCardIds.MeekMasteryTavernBrawl,\r\n\tCardIds.MulchMadnessTavernBrawl,\r\n\tCardIds.MummyMagic,\r\n\tCardIds.OopsAllSpellsTavernBrawl,\r\n\tCardIds.OrbOfRevelationTavernBrawl,\r\n\tCardIds.PartyReplacementTavernBrawl,\r\n\tCardIds.RallyTheTroopsTavernBrawl,\r\n\tCardIds.RingOfBlackIceTavernBrawl,\r\n\tCardIds.RingOfRefreshmentTavernBrawl,\r\n\tCardIds.RunicHelmTavernBrawl,\r\n\tCardIds.SpecialDeliveryTavernBrawl,\r\n\tCardIds.SpreadingSaplingsTavernBrawl,\r\n\tCardIds.SunstridersCrownTavernBrawl,\r\n\tCardIds.UnstableMagicTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2UltraRare = [\r\n\tCardIds.BandOfBeesTavernBrawl,\r\n\tCardIds.BattleTotem2,\r\n\tCardIds.CapturedFlag,\r\n\tCardIds.DisksOfLegendTavernBrawl,\r\n\tCardIds.ExpeditedBurialTavernBrawl,\r\n\tCardIds.ManastormTavernBrawl,\r\n\tCardIds.MantleOfIgnitionTavernBrawl,\r\n\tCardIds.RobeOfTheMagi,\r\n\tCardIds.ScepterOfSummoning,\r\n\tCardIds.Shadowcasting101TavernBrawl,\r\n\tCardIds.Stargazing,\r\n\tCardIds.TotemOfTheDead2,\r\n];\r\n\r\nexport const duelsActivePool1 = [\r\n\tCardIds.AmalgamateTavernBrawl,\r\n\tCardIds.AstralPortalTavernBrawl,\r\n\tCardIds.BeastlyBeautyTavernBrawl,\r\n\tCardIds.BubbaTavernBrawl,\r\n\tCardIds.ButchTavernBrawl,\r\n\tCardIds.BladeOfQueldelarTavernBrawl,\r\n\tCardIds.BloodMoonTavernBrawl,\r\n\tCardIds.ClockworkAssistantTavernBrawl,\r\n\tCardIds.CoinPouchTavernBrawl,\r\n\tCardIds.CreepyCurioTavernBrawl,\r\n\tCardIds.CrustyTheCrustaceanTavernBrawl,\r\n\tCardIds.Queldelar_HiltOfQueldelar,\r\n\tCardIds.Deathcharger,\r\n\tCardIds.Enrage,\r\n\tCardIds.GentlemansTopHat,\r\n\tCardIds.GoldenKobold,\r\n\tCardIds.GreedyPickaxeTavernBrawl,\r\n\tCardIds.HolyBookTavernBrawl,\r\n\tCardIds.HuntersInsightTavernBrawl,\r\n\tCardIds.JawsTavernBrawl,\r\n\tCardIds.LoyalHenchmanTavernBrawl,\r\n\tCardIds.LoyalSidekickTavernBrawl,\r\n\tCardIds.LoomingPresence1,\r\n\tCardIds.MageArmorTavernBrawl,\r\n\tCardIds.MaskOfMimicryTavernBrawl,\r\n\tCardIds.MindpocalypseTavernBrawl,\r\n\tCardIds.MurlocHolmesTavernBrawl,\r\n\tCardIds.MutatingInjection1,\r\n\tCardIds.NecroticPoisonTavernBrawl,\r\n\tCardIds.OldMilitiaHornTavernBrawl,\r\n\tCardIds.PartyPortalTavernBrawl2,\r\n\tCardIds.PrincessTavernBrawl,\r\n\tCardIds.PureColdTavernBrawl,\r\n\tCardIds.PuzzleBoxTavernBrawl,\r\n\tCardIds.RoyalGift,\r\n\tCardIds.SowTheSeedsTavernBrawl,\r\n\tCardIds.SpyglassTavernBrawl,\r\n\tCardIds.SuperchargeTavernBrawl,\r\n\tCardIds.SurlyMobTavernBrawl,\r\n\tCardIds.TheExorcisorTavernBrawl,\r\n\tCardIds.VampiricFangsToken,\r\n\tCardIds.WorshipperHeroic,\r\n];\r\n\r\nexport const duelsActivePool2 = [\r\n\tCardIds.ArchmageStaffTavernBrawl,\r\n\tCardIds.BagOfCoinsTavernBrawl,\r\n\tCardIds.BookOfTheDeadTavernBrawl,\r\n\tCardIds.GrimmerPatron1,\r\n\tCardIds.HyperblasterTavernBrawl,\r\n\tCardIds.AncientReflectionsTavernBrawl,\r\n\tCardIds.BagOfStuffingTavernBrawl,\r\n\tCardIds.Questionquestionquestion_BlackSoulstoneTavernBrawl,\r\n\tCardIds.BladeOfTheBurningSun,\r\n\tCardIds.GnomishArmyKnife1,\r\n\tCardIds.BananaSplitTavernBrawl,\r\n\tCardIds.CanopicJarsTavernBrawl,\r\n\tCardIds.PhaorisBlade1,\r\n\tCardIds.StaffOfScales1,\r\n\tCardIds.WandOfDisintegrationTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool2UltraRare = [\r\n\tCardIds.ChaosTheoryTavernBrawl,\r\n\tCardIds.OverpoweredTavernBrawl,\r\n\tCardIds.DreamgroveRing,\r\n\tCardIds.EmbersOfRagnarosTavernBrawl,\r\n\tCardIds.WaxRager1,\r\n\tCardIds.WishTavernBrawl,\r\n];\r\n\r\nexport const allDuelsTreasureCardIds = [\r\n\t...duelsPassivePool1,\r\n\t...duelsPassivePool2,\r\n\t...duelsPassivePool2UltraRare,\r\n\t...duelsActivePool1,\r\n\t...duelsActivePool2,\r\n\t...duelsActivePool2UltraRare,\r\n];\r\n\r\nexport const allDuelsHeroes = [\r\n\tCardIds.MindrenderIlluciaTavernBrawl,\r\n\tCardIds.RattlegoreTavernBrawl,\r\n\tCardIds.TuralyonTheTenuredTavernBrawl,\r\n\tCardIds.StarStudentStelinaTavernBrawl,\r\n\tCardIds.ProfessorSlateTavernBrawl,\r\n\tCardIds.ForestWardenOmuTavernBrawl,\r\n\tCardIds.MozakiMasterDuelistTavernBrawl,\r\n\tCardIds.ArchwitchWillowTavernBrawl,\r\n\tCardIds.InstructorFireheartTavernBrawlToken,\r\n\tCardIds.InfiltratorLilianTavernBrawl,\r\n\tCardIds.VanndarStormpikeTavernBrawl,\r\n\tCardIds.DrektharTavernBrawl,\r\n];\r\n\r\nexport const normalizeDuelsHeroCardId = (heroCardId: string): string => {\r\n\tswitch (heroCardId) {\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl1:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl2:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl3:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl4:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl5:\r\n\t\t\treturn CardIds.VanndarStormpikeTavernBrawl;\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl1:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl2:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl3:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl4:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl5:\r\n\t\t\treturn CardIds.DrektharTavernBrawl;\r\n\t\tdefault:\r\n\t\t\treturn heroCardId;\r\n\t}\r\n};\r\n\r\nexport const allDuelsSignatureTreasures = [\r\n\tCardIds.BladeOfQuickeningTavernBrawlToken,\r\n\tCardIds.BindingChainsTavernBrawlToken,\r\n\tCardIds.GiftOfTheLegionTavernBrawl,\r\n\tCardIds.MoargOutcastTavernBrawlToken,\r\n\tCardIds.SummoningRitualTavernBrawlToken,\r\n\tCardIds.AwakenedAncientTavernBrawl,\r\n\tCardIds.HerdingHornTavernBrawlToken,\r\n\tCardIds.MarvelousMyceliumTavernBrawlToken,\r\n\tCardIds.MoonbeastTavernBrawlToken,\r\n\tCardIds.WardensInsightTavernBrawlToken,\r\n\tCardIds.ZukaraTheWildTavernBrawl,\r\n\tCardIds.BonecrusherTavernBrawlToken,\r\n\tCardIds.CarrotOnAStickTavernBrawl,\r\n\tCardIds.DeathstriderTavernBrawl,\r\n\tCardIds.SlatesSyringeTavernBrawl,\r\n\tCardIds.StalkingPrideTavernBrawlToken,\r\n\tCardIds.TraktamerAelessaTavernBrawl,\r\n\tCardIds.BritzBlazebucketTavernBrawl,\r\n\tCardIds.ElementalLearningTavernBrawl,\r\n\tCardIds.EmbercasterTavernBrawl,\r\n\tCardIds.InfiniteArcaneTavernBrawlToken,\r\n\tCardIds.WandOfDuelingTavernBrawlToken,\r\n\tCardIds.YoggTasticTastiesTavernBrawl,\r\n\tCardIds.DrocomurchanicasTavernBrawlToken,\r\n\tCardIds.FavoredRacerTavernBrawl,\r\n\tCardIds.HumbleBlessingsTavernBrawl,\r\n\tCardIds.MenAtArmsTavernBrawlToken,\r\n\tCardIds.RoyalGreatswordTavernBrawlToken,\r\n\tCardIds.SuLeadfootTavernBrawl,\r\n\tCardIds.DropletOfInsanityTavernBrawlToken,\r\n\tCardIds.FracturedSpiritsTavernBrawlToken,\r\n\tCardIds.HeraldOfTheScaledOnesTavernBrawl,\r\n\tCardIds.JorasThuldoomTavernBrawl,\r\n\tCardIds.ScionOfTheDeepTavernBrawlToken,\r\n\tCardIds.ShadowWordVoidTavernBrawl,\r\n\tCardIds.AceInTheHoleTavernBrawlToken,\r\n\tCardIds.AcquiredAlliesTavernBrawlToken,\r\n\tCardIds.DeadlyWeapons101TavernBrawlToken,\r\n\tCardIds.GreenTortollanShellTavernBrawl,\r\n\tCardIds.NerubianPeddlerTavernBrawlToken,\r\n\tCardIds.ChaosStormTavernBrawl,\r\n\tCardIds.FluctuatingTotemTavernBrawlToken,\r\n\tCardIds.InvokeTheVoidTavernBrawlToken,\r\n\tCardIds.PayloadTotemSpecialistTavernBrawl,\r\n\tCardIds.TempestsFuryTavernBrawlToken,\r\n\tCardIds.Demonology101TavernBrawlToken,\r\n\tCardIds.DemonizerTavernBrawlToken,\r\n\tCardIds.GiftOfTheOldGodsTavernBrawlToken,\r\n\tCardIds.ImpishAidTavernBrawl,\r\n\tCardIds.KillmoxTheBanishedOneTavernBrawlToken,\r\n\tCardIds.AutoArmamentsTavernBrawlToken,\r\n\tCardIds.BrewsterTheBrutalTavernBrawlToken,\r\n\tCardIds.CollectorsIreTavernBrawlToken,\r\n\tCardIds.ScrapmetalDemolitionistTavernBrawl,\r\n\tCardIds.SpikedArmsTavernBrawlToken,\r\n\r\n\tCardIds.ApocalypseTavernBrawlToken,\r\n\tCardIds.ClawsOfTerrorTavernBrawlToken,\r\n\tCardIds.FireStompTavernBrawlToken,\r\n\tCardIds.HornsOfFlameTavernBrawlToken,\r\n\tCardIds.SoulstoneTrapTavernBrawlToken,\r\n\tCardIds.Questionquestionquestion_BlackSoulstoneTavernBrawl,\r\n\r\n\tCardIds.ValorousDisplayTavernBrawlToken,\r\n\tCardIds.ElementalChaosTavernBrawlToken,\r\n\tCardIds.PactOfTheLichTavernBrawlToken,\r\n\tCardIds.MagisterUnchainedTavernBrawlToken,\r\n\tCardIds.GiftOfTheHeartTavernBrawlToken,\r\n\tCardIds.ForTheHordeTavernBrawlToken,\r\n\tCardIds.ForgeInLightTavernBrawlToken,\r\n\tCardIds.SpymastersGambitTavernBrawlToken,\r\n\tCardIds.StalkersSuppliesTavernBrawlToken,\r\n\tCardIds.RendingAmbushTavernBrawlToken,\r\n\tCardIds.DevoutBlessingsTavernBrawlToken,\r\n\tCardIds.ForTheAllianceTavernBrawlToken,\r\n];\r\n\r\n// Maybe it's possible to extract this from the game files or memory somehow?\r\n// Since it doesn't change often it's ok to maintain it manually, at least for now\r\nexport const duelsHeroConfigs = [\r\n\t{\r\n\t\thero: CardIds.StarStudentStelinaTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.InfernalStrikeTavernBrawl,\r\n\t\t\tCardIds.OutlanderTavernBrawl,\r\n\t\t\tCardIds.IllidariStrikeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SummoningRitualTavernBrawlToken,\r\n\t\t\tCardIds.MoargOutcastTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheLegionTavernBrawl,\r\n\t\t\tCardIds.BindingChainsTavernBrawlToken,\r\n\t\t\tCardIds.BladeOfQuickeningTavernBrawlToken,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ForestWardenOmuTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NaturesGiftsTavernBrawl,\r\n\t\t\tCardIds.InvigoratingBloomTavernBrawl,\r\n\t\t\tCardIds.HarvestTimeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WardensInsightTavernBrawlToken,\r\n\t\t\tCardIds.MoonbeastTavernBrawlToken,\r\n\t\t\tCardIds.HerdingHornTavernBrawlToken,\r\n\t\t\tCardIds.MarvelousMyceliumTavernBrawlToken,\r\n\t\t\tCardIds.AwakenedAncientTavernBrawl,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ProfessorSlateTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SurvivalTrainingTavernBrawl,\r\n\t\t\tCardIds.DeathGamesTavernBrawl,\r\n\t\t\tCardIds.SavageSecretsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SlatesSyringeTavernBrawl,\r\n\t\t\tCardIds.BonecrusherTavernBrawlToken,\r\n\t\t\tCardIds.StalkingPrideTavernBrawlToken,\r\n\t\t\tCardIds.DeathstriderTavernBrawl,\r\n\t\t\tCardIds.CarrotOnAStickTavernBrawl,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MozakiMasterDuelistTavernBrawl,\r\n\t\theroPowers: [CardIds.WyrmBoltTavernBrawl, CardIds.SecretStudiesTavernBrawl, CardIds.FrostShardsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WandOfDuelingTavernBrawlToken,\r\n\t\t\tCardIds.ElementalLearningTavernBrawl,\r\n\t\t\tCardIds.InfiniteArcaneTavernBrawlToken,\r\n\t\t\tCardIds.EmbercasterTavernBrawl,\r\n\t\t\tCardIds.YoggTasticTastiesTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.TuralyonTheTenuredTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FromGoldenLightTavernBrawl,\r\n\t\t\tCardIds.BringOnRecruitsTavernBrawl,\r\n\t\t\tCardIds.ModestAspirationsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RoyalGreatswordTavernBrawlToken,\r\n\t\t\tCardIds.MenAtArmsTavernBrawlToken,\r\n\t\t\tCardIds.DrocomurchanicasTavernBrawlToken,\r\n\t\t\tCardIds.FavoredRacerTavernBrawl,\r\n\t\t\tCardIds.HumbleBlessingsTavernBrawl,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MindrenderIlluciaTavernBrawl,\r\n\t\theroPowers: [CardIds.ShadowMendTavernBrawl, CardIds.MindTetherTavernBrawl, CardIds.CallOfMadnessTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FracturedSpiritsTavernBrawlToken,\r\n\t\t\tCardIds.DropletOfInsanityTavernBrawlToken,\r\n\t\t\tCardIds.ScionOfTheDeepTavernBrawlToken,\r\n\t\t\tCardIds.ShadowWordVoidTavernBrawl,\r\n\t\t\tCardIds.HeraldOfTheScaledOnesTavernBrawl,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InfiltratorLilianTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.RoguishManeuversTavernBrawl,\r\n\t\t\tCardIds.ConnectionsTavernBrawl,\r\n\t\t\tCardIds.VileConcoctionTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.DeadlyWeapons101TavernBrawlToken,\r\n\t\t\tCardIds.NerubianPeddlerTavernBrawlToken,\r\n\t\t\tCardIds.AcquiredAlliesTavernBrawlToken,\r\n\t\t\tCardIds.AceInTheHoleTavernBrawlToken,\r\n\t\t\tCardIds.GreenTortollanShellTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InstructorFireheartTavernBrawlToken,\r\n\t\theroPowers: [CardIds.StormcatcherTavernBrawl, CardIds.TotemicPowerTavernBrawl, CardIds.FavoredRacerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ChaosStormTavernBrawl,\r\n\t\t\tCardIds.FluctuatingTotemTavernBrawlToken,\r\n\t\t\tCardIds.InvokeTheVoidTavernBrawlToken,\r\n\t\t\tCardIds.PayloadTotemSpecialistTavernBrawl,\r\n\t\t\tCardIds.TempestsFuryTavernBrawlToken,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ArchwitchWillowTavernBrawl,\r\n\t\theroPowers: [CardIds.DarkArtsTavernBrawl, CardIds.DemonBloodTavernBrawl, CardIds.SoulcialStudiesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ImpishAidTavernBrawl,\r\n\t\t\tCardIds.GiftOfTheOldGodsTavernBrawlToken,\r\n\t\t\tCardIds.KillmoxTheBanishedOneTavernBrawlToken,\r\n\t\t\tCardIds.DemonizerTavernBrawlToken,\r\n\t\t\tCardIds.Demonology101TavernBrawlToken,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DiabloTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.DoomChargeTavernBrawl,\r\n\t\t\tCardIds.PrimalPowerTavernBrawl,\r\n\t\t\tCardIds.DemonicTransformationTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ClawsOfTerrorTavernBrawlToken,\r\n\t\t\tCardIds.FireStompTavernBrawlToken,\r\n\t\t\tCardIds.ApocalypseTavernBrawlToken,\r\n\t\t\tCardIds.SoulstoneTrapTavernBrawlToken,\r\n\t\t\tCardIds.HornsOfFlameTavernBrawlToken,\r\n\t\t\tCardIds.QuestionquestionquestionTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RattlegoreTavernBrawl,\r\n\t\theroPowers: [CardIds.NoGutsNoGloryTavernBrawl, CardIds.BruisingTavernBrawl, CardIds.MagneticMinesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.AutoArmamentsTavernBrawlToken,\r\n\t\t\tCardIds.CollectorsIreTavernBrawlToken,\r\n\t\t\tCardIds.BrewsterTheBrutalTavernBrawlToken,\r\n\t\t\tCardIds.ScrapmetalDemolitionistTavernBrawl,\r\n\t\t\tCardIds.SpikedArmsTavernBrawlToken,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DrektharTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl1,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl2,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl3,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl4,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl5,\r\n\t\t],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.WarmastersFrenzyTavernBrawl,\r\n\t\t\tCardIds.HarnessTheElementsTavernBrawl,\r\n\t\t\tCardIds.WarCommandsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ValorousDisplayTavernBrawlToken,\r\n\t\t\tCardIds.ElementalChaosTavernBrawlToken,\r\n\t\t\tCardIds.PactOfTheLichTavernBrawlToken,\r\n\t\t\tCardIds.MagisterUnchainedTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheHeartTavernBrawlToken,\r\n\t\t\tCardIds.ForTheHordeTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.VanndarStormpikeTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl1,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl2,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl3,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl4,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl5,\r\n\t\t],\r\n\t\theroPowers: [CardIds.PromoteTavernBrawl, CardIds.SendInTheScoutTavernBrawl, CardIds.BattleTacticsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ForgeInLightTavernBrawlToken,\r\n\t\t\tCardIds.SpymastersGambitTavernBrawlToken,\r\n\t\t\tCardIds.StalkersSuppliesTavernBrawlToken,\r\n\t\t\tCardIds.RendingAmbushTavernBrawlToken,\r\n\t\t\tCardIds.DevoutBlessingsTavernBrawlToken,\r\n\t\t\tCardIds.ForTheAllianceTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RenoJacksonTavernBrawl5,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.AmateurMageTavernBrawl,\r\n\t\t\tCardIds.RelicologistTavernBrawl,\r\n\t\t\tCardIds.ArcaneCraftinessTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RenosLuckyHatTavernBrawl,\r\n\t\t\tCardIds.RenosCraftyLassoTavernBrawl,\r\n\t\t\tCardIds.RenosMagicalTorchTavernBrawl,\r\n\t\t\tCardIds.SrTombDiverTavernBrawl,\r\n\t\t\tCardIds.LeiFlamepawTavernBrawl,\r\n\t\t\tCardIds.TheGatlingWandTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SirFinleyTavernBrawl5,\r\n\t\theroPowers: [CardIds.NewRecruitsTavernBrawl, CardIds.BubbleBlowerTavernBrawl, CardIds.PowerUpTavernBrawl2],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FinleysPithHelmetTavernBrawl,\r\n\t\t\tCardIds.MaxwellMightySteedTavernBrawl,\r\n\t\t\tCardIds.TruesilverLanceTavernBrawl,\r\n\t\t\tCardIds.SrScoutTavernBrawl,\r\n\t\t\tCardIds.KarlTheLostTavernBrawl,\r\n\t\t\tCardIds.ScalesOfJusticeTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.EliseStarseekerTavernBrawl4,\r\n\t\theroPowers: [CardIds.ElisesMightTavernBrawl, CardIds.DruidicTeachingTavernBrawl, CardIds.StarseekerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.StarseekersToolsTavernBrawl,\r\n\t\t\tCardIds.ElisesMacheteTavernBrawl,\r\n\t\t\tCardIds.AddarahTavernBrawl,\r\n\t\t\tCardIds.SrNavigatorTavernBrawl,\r\n\t\t\tCardIds.AcademicResearchTavernBrawl,\r\n\t\t\tCardIds.StaffOfRenewalTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.BrannBronzebeardTavernBrawl5,\r\n\t\theroPowers: [CardIds.SpreadShotTavernBrawl, CardIds.WellEquippedTavernBrawl2, CardIds.DinoTrackingTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.OlFaithfulTavernBrawl,\r\n\t\t\tCardIds.BrannsSaddleTavernBrawl,\r\n\t\t\tCardIds.TitanForgedGrapnelTavernBrawl,\r\n\t\t\tCardIds.SrExcavatorTavernBrawl,\r\n\t\t\tCardIds.FloSlatebrandTavernBrawl,\r\n\t\t\tCardIds.BrannsEpicEggTavernBrawl,\r\n\t\t],\r\n\t},\r\n];\r\n"]}
1
+ {"version":3,"file":"duels-utils.js","sourceRoot":"","sources":["../../src/services/duels-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds } from '../card-ids';\r\n\r\nexport const duelsPassivePool1 = [\r\n\tCardIds.AllShallServeTavernBrawl,\r\n\tCardIds.ArcaneFluxTavernBrawl,\r\n\tCardIds.ArcaniteCrystalTavernBrawl,\r\n\tCardIds.ArcticArmorTavernBrawl,\r\n\tCardIds.BeckoningBicornTavernBrawl,\r\n\tCardIds.BitterColdTavernBrawl,\r\n\tCardIds.BookOfWonders,\r\n\tCardIds.CannibalismTavernBrawl,\r\n\tCardIds.CoilCastingTavernBrawl,\r\n\tCardIds.CookiesLadleTavernBrawl,\r\n\t// CardIds.ConduitOfTheStormsTavernBrawl,\r\n\tCardIds.CrystalGemTavernBrawl,\r\n\tCardIds.DivineIlluminationTavernBrawl,\r\n\tCardIds.DragonbloodTavernBrawl,\r\n\tCardIds.DragonAffinityTavernBrawl,\r\n\tCardIds.EdgeOfDredgeTavernBrawl,\r\n\t// CardIds.EverChangingElixirTavernBrawl,\r\n\tCardIds.FirekeepersIdolTavernBrawl,\r\n\t// CardIds.FireshaperTavernBrawl,\r\n\tCardIds.ForgottenDepthsTavernBrawl,\r\n\tCardIds.FreezeSolidTavernBrawl,\r\n\tCardIds.FromTheSwampTavernBrawl,\r\n\tCardIds.GrommashsArmguardsTavernBrawl,\r\n\tCardIds.HoldTheLineTavernBrawl,\r\n\tCardIds.InspiringPresenceTavernBrawl,\r\n\tCardIds.InvigoratingLightTavernBrawl,\r\n\tCardIds.KindlingFlameTavernBrawl,\r\n\tCardIds.MendingPoolsTavernBrawl,\r\n\tCardIds.MysteriousTomeTavernBrawl,\r\n\tCardIds.NaturalForceTavernBrawl,\r\n\tCardIds.OpenTheDoorwaysTavernBrawl,\r\n\tCardIds.OptimizedPolarityTavernBrawl,\r\n\tCardIds.PillageTheFallenTavernBrawl,\r\n\tCardIds.PlaguebringerTavernBrawl,\r\n\tCardIds.PotionOfSparkingTavernBrawl,\r\n\tCardIds.RecyclingTavernBrawl,\r\n\t// CardIds.RhoninsScryingOrbTavernBrawl,\r\n\tCardIds.RighteousReservesTavernBrawl,\r\n\tCardIds.RingOfPhaseshiftingTavernBrawl,\r\n\tCardIds.RobeOfTheApprenticeTavernBrawl,\r\n\tCardIds.RobesOfShrinkingTavernBrawl,\r\n\tCardIds.RocketBackpacksTavernBrawl,\r\n\t// CardIds.ScatteredCaltropsTavernBrawl,\r\n\tCardIds.SmallBackpacksTavernBrawl,\r\n\t// CardIds.SmallPouchesTavernBrawl,\r\n\tCardIds.StaffOfPainTavernBrawl,\r\n\tCardIds.StakingAClaimTavernBrawl,\r\n\tCardIds.StarvingTavernBrawl,\r\n\tCardIds.StickyFingersTavernBrawl,\r\n\tCardIds.TheFloorIsLavaTavernBrawl,\r\n\tCardIds.UnholyGiftTavernBrawl,\r\n\tCardIds.UnlockedPotential,\r\n\tCardIds.WitherTheWeakTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2 = [\r\n\tCardIds.AllTogetherNowTavernBrawl,\r\n\tCardIds.AvengingArmamentsTavernBrawl,\r\n\tCardIds.BattleStanceTavernBrawl,\r\n\t// CardIds.Caltrops,\r\n\tCardIds.BronzeSignetTavernBrawl,\r\n\tCardIds.CloakOfEmeraldDreamsTavernBrawl,\r\n\tCardIds.CorruptedFelstoneTavernBrawl,\r\n\tCardIds.DeathlyDeathTavernBrawl,\r\n\tCardIds.DoubleTime,\r\n\tCardIds.DraconicDreamTavernBrawl,\r\n\tCardIds.DragonboneRitualTavernBrawl,\r\n\tCardIds.EerieStoneTavernBrawl,\r\n\tCardIds.ElixirOfVigorTavernBrawl,\r\n\tCardIds.EmeraldGogglesTavernBrawl,\r\n\tCardIds.EnduranceTrainingTavernBrawl,\r\n\tCardIds.FlamesOfTheKirinTorTavernBrawl,\r\n\tCardIds.FlameWavesTavernBrawl,\r\n\tCardIds.GlacialDownpourTavernBrawl,\r\n\tCardIds.GreedyGainsTavernBrawl,\r\n\tCardIds.GuardianLightTavernBrawl,\r\n\tCardIds.HagathasEmbraceTavernBrawl,\r\n\tCardIds.HeavyArmorTavernBrawl,\r\n\tCardIds.IdolsOfEluneTavernBrawl,\r\n\tCardIds.ImpCredibleTrousersTavernBrawl,\r\n\tCardIds.IronRootsTavernBrawl,\r\n\tCardIds.KhadgarsScryingOrb,\r\n\tCardIds.MeekMasteryTavernBrawl,\r\n\tCardIds.MulchMadnessTavernBrawl,\r\n\tCardIds.MummyMagic,\r\n\tCardIds.OopsAllSpellsTavernBrawl,\r\n\tCardIds.OrbOfRevelationTavernBrawl,\r\n\tCardIds.PartyReplacementTavernBrawl,\r\n\tCardIds.RallyTheTroopsTavernBrawl,\r\n\tCardIds.RingOfBlackIceTavernBrawl,\r\n\tCardIds.RingOfRefreshmentTavernBrawl,\r\n\tCardIds.RunicHelmTavernBrawl,\r\n\tCardIds.SpecialDeliveryTavernBrawl,\r\n\tCardIds.SpreadingSaplingsTavernBrawl,\r\n\tCardIds.SunstridersCrownTavernBrawl,\r\n];\r\n\r\nexport const duelsPassivePool2UltraRare = [\r\n\tCardIds.BandOfBeesTavernBrawl,\r\n\tCardIds.BattleTotem2,\r\n\tCardIds.CapturedFlag,\r\n\tCardIds.DisksOfLegendTavernBrawl,\r\n\tCardIds.ExpeditedBurialTavernBrawl,\r\n\tCardIds.LegendaryLootTavernBrawl,\r\n\tCardIds.ManastormTavernBrawl,\r\n\tCardIds.MantleOfIgnitionTavernBrawl,\r\n\tCardIds.RobeOfTheMagi,\r\n\tCardIds.ScepterOfSummoning,\r\n\tCardIds.Shadowcasting101TavernBrawl,\r\n\tCardIds.Stargazing,\r\n\tCardIds.TotemOfTheDead2,\r\n\tCardIds.UnstableMagicTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool1 = [\r\n\tCardIds.AmalgamateTavernBrawl,\r\n\tCardIds.AstralPortalTavernBrawl,\r\n\tCardIds.BeastlyBeautyTavernBrawl,\r\n\tCardIds.BubbaTavernBrawl,\r\n\tCardIds.ButchTavernBrawl,\r\n\tCardIds.BladeOfQueldelarTavernBrawl,\r\n\tCardIds.BloodMoonTavernBrawl,\r\n\tCardIds.ClockworkAssistantTavernBrawl,\r\n\tCardIds.CoinPouchTavernBrawl,\r\n\tCardIds.CreepyCurioTavernBrawl,\r\n\tCardIds.CrustyTheCrustaceanTavernBrawl,\r\n\tCardIds.Queldelar_HiltOfQueldelar,\r\n\tCardIds.Deathcharger,\r\n\tCardIds.Enrage,\r\n\tCardIds.GentlemansTopHat,\r\n\tCardIds.GoldenKobold,\r\n\tCardIds.GreedyPickaxeTavernBrawl,\r\n\tCardIds.HolyBookTavernBrawl,\r\n\tCardIds.HuntersInsightTavernBrawl,\r\n\tCardIds.JawsTavernBrawl,\r\n\tCardIds.LoyalHenchmanTavernBrawl,\r\n\tCardIds.LoyalSidekickTavernBrawl,\r\n\tCardIds.LoomingPresence1,\r\n\tCardIds.MageArmorTavernBrawl,\r\n\tCardIds.MaskOfMimicryTavernBrawl,\r\n\tCardIds.MindpocalypseTavernBrawl,\r\n\tCardIds.MurlocHolmesTavernBrawl,\r\n\tCardIds.MutatingInjection1,\r\n\tCardIds.NecroticPoisonTavernBrawl,\r\n\tCardIds.OldMilitiaHornTavernBrawl,\r\n\tCardIds.PartyPortalTavernBrawl2,\r\n\tCardIds.PrincessTavernBrawl,\r\n\tCardIds.PureColdTavernBrawl,\r\n\tCardIds.PuzzleBoxTavernBrawl,\r\n\tCardIds.RoyalGift,\r\n\tCardIds.SowTheSeedsTavernBrawl,\r\n\tCardIds.SpyglassTavernBrawl,\r\n\tCardIds.SuperchargeTavernBrawl,\r\n\tCardIds.SurlyMobTavernBrawl,\r\n\tCardIds.TheExorcisorTavernBrawl,\r\n\tCardIds.VampiricFangsToken,\r\n\tCardIds.WorshipperHeroic,\r\n];\r\n\r\nexport const duelsActivePool2 = [\r\n\tCardIds.ArchmageStaffTavernBrawl,\r\n\tCardIds.BagOfCoinsTavernBrawl,\r\n\tCardIds.BookOfTheDeadTavernBrawl,\r\n\tCardIds.GrimmerPatron1,\r\n\tCardIds.HyperblasterTavernBrawl,\r\n\tCardIds.AncientReflectionsTavernBrawl,\r\n\tCardIds.BagOfStuffingTavernBrawl,\r\n\tCardIds.Questionquestionquestion_BlackSoulstoneTavernBrawl,\r\n\tCardIds.BladeOfTheBurningSun,\r\n\tCardIds.GnomishArmyKnife1,\r\n\tCardIds.BananaSplitTavernBrawl,\r\n\tCardIds.CanopicJarsTavernBrawl,\r\n\tCardIds.PhaorisBlade1,\r\n\tCardIds.StaffOfScales1,\r\n\tCardIds.WandOfDisintegrationTavernBrawl,\r\n];\r\n\r\nexport const duelsActivePool2UltraRare = [\r\n\tCardIds.ChaosTheoryTavernBrawl,\r\n\tCardIds.OverpoweredTavernBrawl,\r\n\tCardIds.DreamgroveRing,\r\n\tCardIds.EmbersOfRagnarosTavernBrawl,\r\n\tCardIds.WaxRager1,\r\n\tCardIds.WishTavernBrawl,\r\n];\r\n\r\nexport const allDuelsTreasureCardIds = [\r\n\t...duelsPassivePool1,\r\n\t...duelsPassivePool2,\r\n\t...duelsPassivePool2UltraRare,\r\n\t...duelsActivePool1,\r\n\t...duelsActivePool2,\r\n\t...duelsActivePool2UltraRare,\r\n];\r\n\r\nexport const allDuelsHeroes = [\r\n\tCardIds.MindrenderIlluciaTavernBrawl,\r\n\tCardIds.RattlegoreTavernBrawl,\r\n\tCardIds.TuralyonTheTenuredTavernBrawl,\r\n\tCardIds.StarStudentStelinaTavernBrawl,\r\n\tCardIds.ProfessorSlateTavernBrawl,\r\n\tCardIds.ForestWardenOmuTavernBrawl,\r\n\tCardIds.MozakiMasterDuelistTavernBrawl,\r\n\tCardIds.ArchwitchWillowTavernBrawl,\r\n\tCardIds.InstructorFireheartTavernBrawlToken,\r\n\tCardIds.InfiltratorLilianTavernBrawl,\r\n\tCardIds.VanndarStormpikeTavernBrawl,\r\n\tCardIds.DrektharTavernBrawl,\r\n\tCardIds.RenoJacksonTavernBrawl5,\r\n\tCardIds.SirFinleyTavernBrawl5,\r\n\tCardIds.EliseStarseekerTavernBrawl4,\r\n\tCardIds.BrannBronzebeardTavernBrawl5,\r\n];\r\n\r\nexport const normalizeDuelsHeroCardId = (heroCardId: string): string => {\r\n\tswitch (heroCardId) {\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl1:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl2:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl3:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl4:\r\n\t\tcase CardIds.VanndarStormpike_VanndarStormpikeTavernBrawl5:\r\n\t\t\treturn CardIds.VanndarStormpikeTavernBrawl;\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl1:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl2:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl3:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl4:\r\n\t\tcase CardIds.Drekthar_DrektharTavernBrawl5:\r\n\t\t\treturn CardIds.DrektharTavernBrawl;\r\n\t\tdefault:\r\n\t\t\treturn heroCardId;\r\n\t}\r\n};\r\n\r\n// Maybe it's possible to extract this from the game files or memory somehow?\r\n// Since it doesn't change often it's ok to maintain it manually, at least for now\r\nexport const duelsHeroConfigs = [\r\n\t{\r\n\t\thero: CardIds.StarStudentStelinaTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.InfernalStrikeTavernBrawl,\r\n\t\t\tCardIds.OutlanderTavernBrawl,\r\n\t\t\tCardIds.IllidariStrikeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SummoningRitualTavernBrawlToken,\r\n\t\t\tCardIds.MoargOutcastTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheLegionTavernBrawl,\r\n\t\t\tCardIds.BindingChainsTavernBrawlToken,\r\n\t\t\tCardIds.BladeOfQuickeningTavernBrawlToken,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ForestWardenOmuTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.NaturesGiftsTavernBrawl,\r\n\t\t\tCardIds.InvigoratingBloomTavernBrawl,\r\n\t\t\tCardIds.HarvestTimeTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WardensInsightTavernBrawlToken,\r\n\t\t\tCardIds.MoonbeastTavernBrawlToken,\r\n\t\t\tCardIds.HerdingHornTavernBrawlToken,\r\n\t\t\tCardIds.MarvelousMyceliumTavernBrawlToken,\r\n\t\t\tCardIds.AwakenedAncientTavernBrawl,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ProfessorSlateTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.SurvivalTrainingTavernBrawl,\r\n\t\t\tCardIds.DeathGamesTavernBrawl,\r\n\t\t\tCardIds.SavageSecretsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.SlatesSyringeTavernBrawl,\r\n\t\t\tCardIds.BonecrusherTavernBrawlToken,\r\n\t\t\tCardIds.StalkingPrideTavernBrawlToken,\r\n\t\t\tCardIds.DeathstriderTavernBrawl,\r\n\t\t\tCardIds.CarrotOnAStickTavernBrawl,\r\n\t\t\tCardIds.TraktamerAelessaTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MozakiMasterDuelistTavernBrawl,\r\n\t\theroPowers: [CardIds.WyrmBoltTavernBrawl, CardIds.SecretStudiesTavernBrawl, CardIds.FrostShardsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.WandOfDuelingTavernBrawlToken,\r\n\t\t\tCardIds.ElementalLearningTavernBrawl,\r\n\t\t\tCardIds.InfiniteArcaneTavernBrawlToken,\r\n\t\t\tCardIds.EmbercasterTavernBrawl,\r\n\t\t\tCardIds.YoggTasticTastiesTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.TuralyonTheTenuredTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.FromGoldenLightTavernBrawl,\r\n\t\t\tCardIds.BringOnRecruitsTavernBrawl,\r\n\t\t\tCardIds.ModestAspirationsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RoyalGreatswordTavernBrawlToken,\r\n\t\t\tCardIds.MenAtArmsTavernBrawlToken,\r\n\t\t\tCardIds.DrocomurchanicasTavernBrawlToken,\r\n\t\t\tCardIds.FavoredRacerTavernBrawl,\r\n\t\t\tCardIds.HumbleBlessingsTavernBrawl,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.MindrenderIlluciaTavernBrawl,\r\n\t\theroPowers: [CardIds.ShadowMendTavernBrawl, CardIds.MindTetherTavernBrawl, CardIds.CallOfMadnessTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FracturedSpiritsTavernBrawlToken,\r\n\t\t\tCardIds.DropletOfInsanityTavernBrawlToken,\r\n\t\t\tCardIds.ScionOfTheDeepTavernBrawlToken,\r\n\t\t\tCardIds.ShadowWordVoidTavernBrawl,\r\n\t\t\tCardIds.HeraldOfTheScaledOnesTavernBrawl,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InfiltratorLilianTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.RoguishManeuversTavernBrawl,\r\n\t\t\tCardIds.ConnectionsTavernBrawl,\r\n\t\t\tCardIds.VileConcoctionTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.DeadlyWeapons101TavernBrawlToken,\r\n\t\t\tCardIds.NerubianPeddlerTavernBrawlToken,\r\n\t\t\tCardIds.AcquiredAlliesTavernBrawlToken,\r\n\t\t\tCardIds.AceInTheHoleTavernBrawlToken,\r\n\t\t\tCardIds.GreenTortollanShellTavernBrawl,\r\n\t\t\tCardIds.BritzBlazebucketTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.InstructorFireheartTavernBrawlToken,\r\n\t\theroPowers: [CardIds.StormcatcherTavernBrawl, CardIds.TotemicPowerTavernBrawl, CardIds.FavoredRacerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ChaosStormTavernBrawl,\r\n\t\t\tCardIds.FluctuatingTotemTavernBrawlToken,\r\n\t\t\tCardIds.InvokeTheVoidTavernBrawlToken,\r\n\t\t\tCardIds.PayloadTotemSpecialistTavernBrawl,\r\n\t\t\tCardIds.TempestsFuryTavernBrawlToken,\r\n\t\t\tCardIds.ZukaraTheWildTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.ArchwitchWillowTavernBrawl,\r\n\t\theroPowers: [CardIds.DarkArtsTavernBrawl, CardIds.DemonBloodTavernBrawl, CardIds.SoulcialStudiesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ImpishAidTavernBrawl,\r\n\t\t\tCardIds.GiftOfTheOldGodsTavernBrawlToken,\r\n\t\t\tCardIds.KillmoxTheBanishedOneTavernBrawlToken,\r\n\t\t\tCardIds.DemonizerTavernBrawlToken,\r\n\t\t\tCardIds.Demonology101TavernBrawlToken,\r\n\t\t\tCardIds.JorasThuldoomTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DiabloTavernBrawl,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.DoomChargeTavernBrawl,\r\n\t\t\tCardIds.PrimalPowerTavernBrawl,\r\n\t\t\tCardIds.DemonicTransformationTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ClawsOfTerrorTavernBrawlToken,\r\n\t\t\tCardIds.FireStompTavernBrawlToken,\r\n\t\t\tCardIds.ApocalypseTavernBrawlToken,\r\n\t\t\tCardIds.SoulstoneTrapTavernBrawlToken,\r\n\t\t\tCardIds.HornsOfFlameTavernBrawlToken,\r\n\t\t\tCardIds.QuestionquestionquestionTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RattlegoreTavernBrawl,\r\n\t\theroPowers: [CardIds.NoGutsNoGloryTavernBrawl, CardIds.BruisingTavernBrawl, CardIds.MagneticMinesTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.AutoArmamentsTavernBrawlToken,\r\n\t\t\tCardIds.CollectorsIreTavernBrawlToken,\r\n\t\t\tCardIds.BrewsterTheBrutalTavernBrawlToken,\r\n\t\t\tCardIds.ScrapmetalDemolitionistTavernBrawl,\r\n\t\t\tCardIds.SpikedArmsTavernBrawlToken,\r\n\t\t\tCardIds.SuLeadfootTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.DrektharTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl1,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl2,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl3,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl4,\r\n\t\t\tCardIds.Drekthar_DrektharTavernBrawl5,\r\n\t\t],\r\n\t\theroPowers: [\r\n\t\t\tCardIds.WarmastersFrenzyTavernBrawl,\r\n\t\t\tCardIds.HarnessTheElementsTavernBrawl,\r\n\t\t\tCardIds.WarCommandsTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ValorousDisplayTavernBrawlToken,\r\n\t\t\tCardIds.ElementalChaosTavernBrawlToken,\r\n\t\t\tCardIds.PactOfTheLichTavernBrawlToken,\r\n\t\t\tCardIds.MagisterUnchainedTavernBrawlToken,\r\n\t\t\tCardIds.GiftOfTheHeartTavernBrawlToken,\r\n\t\t\tCardIds.ForTheHordeTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.VanndarStormpikeTavernBrawl,\r\n\t\talternateHeroes: [\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl1,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl2,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl3,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl4,\r\n\t\t\tCardIds.VanndarStormpike_VanndarStormpikeTavernBrawl5,\r\n\t\t],\r\n\t\theroPowers: [CardIds.PromoteTavernBrawl, CardIds.SendInTheScoutTavernBrawl, CardIds.BattleTacticsTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.ForgeInLightTavernBrawlToken,\r\n\t\t\tCardIds.SpymastersGambitTavernBrawlToken,\r\n\t\t\tCardIds.StalkersSuppliesTavernBrawlToken,\r\n\t\t\tCardIds.RendingAmbushTavernBrawlToken,\r\n\t\t\tCardIds.DevoutBlessingsTavernBrawlToken,\r\n\t\t\tCardIds.ForTheAllianceTavernBrawlToken,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.RenoJacksonTavernBrawl5,\r\n\t\theroPowers: [\r\n\t\t\tCardIds.AmateurMageTavernBrawl,\r\n\t\t\tCardIds.RelicologistTavernBrawl,\r\n\t\t\tCardIds.ArcaneCraftinessTavernBrawl,\r\n\t\t],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.RenosLuckyHatTavernBrawl,\r\n\t\t\tCardIds.RenosCraftyLassoTavernBrawl,\r\n\t\t\tCardIds.RenosMagicalTorchTavernBrawl,\r\n\t\t\tCardIds.SrTombDiverTavernBrawl,\r\n\t\t\tCardIds.LeiFlamepawTavernBrawl,\r\n\t\t\tCardIds.TheGatlingWandTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.SirFinleyTavernBrawl5,\r\n\t\theroPowers: [CardIds.NewRecruitsTavernBrawl, CardIds.BubbleBlowerTavernBrawl, CardIds.PowerUpTavernBrawl2],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.FinleysPithHelmetTavernBrawl,\r\n\t\t\tCardIds.MaxwellMightySteedTavernBrawl,\r\n\t\t\tCardIds.TruesilverLanceTavernBrawl,\r\n\t\t\tCardIds.SrScoutTavernBrawl,\r\n\t\t\tCardIds.KarlTheLostTavernBrawl,\r\n\t\t\tCardIds.ScalesOfJusticeTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.EliseStarseekerTavernBrawl4,\r\n\t\theroPowers: [CardIds.ElisesMightTavernBrawl, CardIds.DruidicTeachingTavernBrawl, CardIds.StarseekerTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.StarseekersToolsTavernBrawl,\r\n\t\t\tCardIds.ElisesMacheteTavernBrawl,\r\n\t\t\tCardIds.AddarahTavernBrawl,\r\n\t\t\tCardIds.SrNavigatorTavernBrawl,\r\n\t\t\tCardIds.AcademicResearchTavernBrawl,\r\n\t\t\tCardIds.StaffOfRenewalTavernBrawl,\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\thero: CardIds.BrannBronzebeardTavernBrawl5,\r\n\t\theroPowers: [CardIds.SpreadShotTavernBrawl, CardIds.WellEquippedTavernBrawl2, CardIds.DinoTrackingTavernBrawl],\r\n\t\tsignatureTreasures: [\r\n\t\t\tCardIds.OlFaithfulTavernBrawl,\r\n\t\t\tCardIds.BrannsSaddleTavernBrawl,\r\n\t\t\tCardIds.TitanForgedGrapnelTavernBrawl,\r\n\t\t\tCardIds.SrExcavatorTavernBrawl,\r\n\t\t\tCardIds.FloSlatebrandTavernBrawl,\r\n\t\t\tCardIds.BrannsEpicEggTavernBrawl,\r\n\t\t],\r\n\t},\r\n];\r\n\r\nexport const allDuelsSignatureTreasures = duelsHeroConfigs.flatMap((info) => info.signatureTreasures);\r\n"]}
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -23,26 +14,22 @@ function partitionArray(array, partitionSize) {
23
14
  return result;
24
15
  }
25
16
  exports.partitionArray = partitionArray;
26
- function http(request) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- return new Promise((resolve) => {
29
- cross_fetch_1.default(request)
30
- .then((response) => {
31
- return response.text();
32
- }, (error) => {
33
- console.warn('could not load cards', error, error.message);
34
- })
35
- .then((body) => {
36
- resolve(body);
37
- });
17
+ async function http(request) {
18
+ return new Promise((resolve) => {
19
+ cross_fetch_1.default(request)
20
+ .then((response) => {
21
+ return response.text();
22
+ }, (error) => {
23
+ console.warn('could not load cards', error, error.message);
24
+ })
25
+ .then((body) => {
26
+ resolve(body);
38
27
  });
39
28
  });
40
29
  }
41
30
  exports.http = http;
42
- function sleep(ms) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- return new Promise((resolve) => setTimeout(resolve, ms));
45
- });
31
+ async function sleep(ms) {
32
+ return new Promise((resolve) => setTimeout(resolve, ms));
46
33
  }
47
34
  exports.sleep = sleep;
48
35
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/services/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAAgC;AAEhC,SAAS,cAAc,CAAI,KAAmB,EAAE,aAAqB;IACpE,MAAM,WAAW,GAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,OAAO,WAAW,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;KAClD;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAyBQ,wCAAc;AAvBvB,SAAe,IAAI,CAAC,OAAe;;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,qBAAK,CAAC,OAAO,CAAC;iBACZ,IAAI,CACJ,CAAC,QAAQ,EAAE,EAAE;gBAEZ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC,CACD;iBACA,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAEd,OAAO,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACJ,CAAC;CAAA;AAMwB,oBAAI;AAJ7B,SAAe,KAAK,CAAC,EAAE;;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;CAAA;AAE8B,sBAAK","sourcesContent":["import fetch from 'cross-fetch';\r\n\r\nfunction partitionArray<T>(array: readonly T[], partitionSize: number): readonly T[][] {\r\n\tconst workingCopy: T[] = [...array];\r\n\tconst result: T[][] = [];\r\n\twhile (workingCopy.length) {\r\n\t\tresult.push(workingCopy.splice(0, partitionSize));\r\n\t}\r\n\treturn result;\r\n}\r\n\r\nasync function http(request: string): Promise<any> {\r\n\treturn new Promise((resolve) => {\r\n\t\tfetch(request)\r\n\t\t\t.then(\r\n\t\t\t\t(response) => {\r\n\t\t\t\t\t// console.log('received response, reading text body');\r\n\t\t\t\t\treturn response.text();\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tconsole.warn('could not load cards', error, error.message);\r\n\t\t\t\t},\r\n\t\t\t)\r\n\t\t\t.then((body) => {\r\n\t\t\t\t// console.log('sending back body', body && body.length);\r\n\t\t\t\tresolve(body);\r\n\t\t\t});\r\n\t});\r\n}\r\n\r\nasync function sleep(ms) {\r\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\nexport { partitionArray, http, sleep };\r\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/services/utils.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAgC;AAEhC,SAAS,cAAc,CAAI,KAAmB,EAAE,aAAqB;IACpE,MAAM,WAAW,GAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;IACpC,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,OAAO,WAAW,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;KAClD;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAyBQ,wCAAc;AAvBvB,KAAK,UAAU,IAAI,CAAC,OAAe;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,qBAAK,CAAC,OAAO,CAAC;aACZ,IAAI,CACJ,CAAC,QAAQ,EAAE,EAAE;YAEZ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CACD;aACA,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAEd,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACJ,CAAC;AAMwB,oBAAI;AAJ7B,KAAK,UAAU,KAAK,CAAC,EAAE;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAE8B,sBAAK","sourcesContent":["import fetch from 'cross-fetch';\r\n\r\nfunction partitionArray<T>(array: readonly T[], partitionSize: number): readonly T[][] {\r\n\tconst workingCopy: T[] = [...array];\r\n\tconst result: T[][] = [];\r\n\twhile (workingCopy.length) {\r\n\t\tresult.push(workingCopy.splice(0, partitionSize));\r\n\t}\r\n\treturn result;\r\n}\r\n\r\nasync function http(request: string): Promise<any> {\r\n\treturn new Promise((resolve) => {\r\n\t\tfetch(request)\r\n\t\t\t.then(\r\n\t\t\t\t(response) => {\r\n\t\t\t\t\t// console.log('received response, reading text body');\r\n\t\t\t\t\treturn response.text();\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {\r\n\t\t\t\t\tconsole.warn('could not load cards', error, error.message);\r\n\t\t\t\t},\r\n\t\t\t)\r\n\t\t\t.then((body) => {\r\n\t\t\t\t// console.log('sending back body', body && body.length);\r\n\t\t\t\tresolve(body);\r\n\t\t\t});\r\n\t});\r\n}\r\n\r\nasync function sleep(ms) {\r\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\n\r\nexport { partitionArray, http, sleep };\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/reference-data",
3
- "version": "0.1.215",
3
+ "version": "0.1.218",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "lint": "eslint --color --fix --ext .ts .",