@firestone-hs/reference-data 0.1.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.
Files changed (101) hide show
  1. package/README.md +16 -0
  2. package/dist/card-ids.d.ts +13665 -0
  3. package/dist/card-ids.js +13670 -0
  4. package/dist/card-ids.js.map +1 -0
  5. package/dist/enums/block-type.d.ts +14 -0
  6. package/dist/enums/block-type.js +19 -0
  7. package/dist/enums/block-type.js.map +1 -0
  8. package/dist/enums/bnet-region.d.ts +10 -0
  9. package/dist/enums/bnet-region.js +15 -0
  10. package/dist/enums/bnet-region.js.map +1 -0
  11. package/dist/enums/board.d.ts +37 -0
  12. package/dist/enums/board.js +42 -0
  13. package/dist/enums/board.js.map +1 -0
  14. package/dist/enums/booster-type.d.ts +47 -0
  15. package/dist/enums/booster-type.js +52 -0
  16. package/dist/enums/booster-type.js.map +1 -0
  17. package/dist/enums/card-class.d.ts +17 -0
  18. package/dist/enums/card-class.js +22 -0
  19. package/dist/enums/card-class.js.map +1 -0
  20. package/dist/enums/card-rarity.d.ts +9 -0
  21. package/dist/enums/card-rarity.js +14 -0
  22. package/dist/enums/card-rarity.js.map +1 -0
  23. package/dist/enums/card-set.d.ts +52 -0
  24. package/dist/enums/card-set.js +57 -0
  25. package/dist/enums/card-set.js.map +1 -0
  26. package/dist/enums/card-type.d.ts +16 -0
  27. package/dist/enums/card-type.js +21 -0
  28. package/dist/enums/card-type.js.map +1 -0
  29. package/dist/enums/choice-type.d.ts +5 -0
  30. package/dist/enums/choice-type.js +10 -0
  31. package/dist/enums/choice-type.js.map +1 -0
  32. package/dist/enums/game-format.d.ts +7 -0
  33. package/dist/enums/game-format.js +11 -0
  34. package/dist/enums/game-format.js.map +1 -0
  35. package/dist/enums/game-tags.d.ts +565 -0
  36. package/dist/enums/game-tags.js +570 -0
  37. package/dist/enums/game-tags.js.map +1 -0
  38. package/dist/enums/game-type.d.ts +23 -0
  39. package/dist/enums/game-type.js +28 -0
  40. package/dist/enums/game-type.js.map +1 -0
  41. package/dist/enums/meta-tags.d.ts +25 -0
  42. package/dist/enums/meta-tags.js +30 -0
  43. package/dist/enums/meta-tags.js.map +1 -0
  44. package/dist/enums/mulligan.d.ts +7 -0
  45. package/dist/enums/mulligan.js +12 -0
  46. package/dist/enums/mulligan.js.map +1 -0
  47. package/dist/enums/multi-class-group.d.ts +16 -0
  48. package/dist/enums/multi-class-group.js +21 -0
  49. package/dist/enums/multi-class-group.js.map +1 -0
  50. package/dist/enums/playstate.d.ts +11 -0
  51. package/dist/enums/playstate.js +16 -0
  52. package/dist/enums/playstate.js.map +1 -0
  53. package/dist/enums/race.d.ts +31 -0
  54. package/dist/enums/race.js +36 -0
  55. package/dist/enums/race.js.map +1 -0
  56. package/dist/enums/reward-type.d.ts +20 -0
  57. package/dist/enums/reward-type.js +25 -0
  58. package/dist/enums/reward-type.js.map +1 -0
  59. package/dist/enums/scenario-groups.d.ts +9 -0
  60. package/dist/enums/scenario-groups.js +132 -0
  61. package/dist/enums/scenario-groups.js.map +1 -0
  62. package/dist/enums/scenario-id.d.ts +486 -0
  63. package/dist/enums/scenario-id.js +491 -0
  64. package/dist/enums/scenario-id.js.map +1 -0
  65. package/dist/enums/scene.d.ts +22 -0
  66. package/dist/enums/scene.js +27 -0
  67. package/dist/enums/scene.js.map +1 -0
  68. package/dist/enums/spell-school.d.ts +11 -0
  69. package/dist/enums/spell-school.js +16 -0
  70. package/dist/enums/spell-school.js.map +1 -0
  71. package/dist/enums/step.d.ts +20 -0
  72. package/dist/enums/step.js +25 -0
  73. package/dist/enums/step.js.map +1 -0
  74. package/dist/enums/zone.d.ts +11 -0
  75. package/dist/enums/zone.js +16 -0
  76. package/dist/enums/zone.js.map +1 -0
  77. package/dist/models/reference-cards/rarity.type.d.ts +1 -0
  78. package/dist/models/reference-cards/rarity.type.js +3 -0
  79. package/dist/models/reference-cards/rarity.type.js.map +1 -0
  80. package/dist/models/reference-cards/reference-card.d.ts +37 -0
  81. package/dist/models/reference-cards/reference-card.js +3 -0
  82. package/dist/models/reference-cards/reference-card.js.map +1 -0
  83. package/dist/models/reference-cards/reference-player-class.d.ts +1 -0
  84. package/dist/models/reference-cards/reference-player-class.js +3 -0
  85. package/dist/models/reference-cards/reference-player-class.js.map +1 -0
  86. package/dist/public-api.d.ts +31 -0
  87. package/dist/public-api.js +44 -0
  88. package/dist/public-api.js.map +1 -0
  89. package/dist/services/all-cards.service.d.ts +12 -0
  90. package/dist/services/all-cards.service.js +263 -0
  91. package/dist/services/all-cards.service.js.map +1 -0
  92. package/dist/services/cards-info.d.ts +2 -0
  93. package/dist/services/cards-info.js +144 -0
  94. package/dist/services/cards-info.js.map +1 -0
  95. package/dist/services/hs-utils.d.ts +7 -0
  96. package/dist/services/hs-utils.js +37 -0
  97. package/dist/services/hs-utils.js.map +1 -0
  98. package/dist/services/utils.d.ts +4 -0
  99. package/dist/services/utils.js +48 -0
  100. package/dist/services/utils.js.map +1 -0
  101. package/package.json +42 -0
@@ -0,0 +1,11 @@
1
+ export declare enum SpellSchool {
2
+ NONE = 0,
3
+ ARCANE = 1,
4
+ FIRE = 2,
5
+ FROST = 3,
6
+ NATURE = 4,
7
+ HOLY = 5,
8
+ SHADOW = 6,
9
+ FEL = 7,
10
+ PHYSICAL_COMBAT = 8
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpellSchool = void 0;
4
+ var SpellSchool;
5
+ (function (SpellSchool) {
6
+ SpellSchool[SpellSchool["NONE"] = 0] = "NONE";
7
+ SpellSchool[SpellSchool["ARCANE"] = 1] = "ARCANE";
8
+ SpellSchool[SpellSchool["FIRE"] = 2] = "FIRE";
9
+ SpellSchool[SpellSchool["FROST"] = 3] = "FROST";
10
+ SpellSchool[SpellSchool["NATURE"] = 4] = "NATURE";
11
+ SpellSchool[SpellSchool["HOLY"] = 5] = "HOLY";
12
+ SpellSchool[SpellSchool["SHADOW"] = 6] = "SHADOW";
13
+ SpellSchool[SpellSchool["FEL"] = 7] = "FEL";
14
+ SpellSchool[SpellSchool["PHYSICAL_COMBAT"] = 8] = "PHYSICAL_COMBAT";
15
+ })(SpellSchool = exports.SpellSchool || (exports.SpellSchool = {}));
16
+ //# sourceMappingURL=spell-school.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spell-school.js","sourceRoot":"","sources":["../../src/enums/spell-school.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAUX;AAVD,WAAY,WAAW;IACtB,6CAAQ,CAAA;IACR,iDAAU,CAAA;IACV,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,iDAAU,CAAA;IACV,6CAAQ,CAAA;IACR,iDAAU,CAAA;IACV,2CAAO,CAAA;IACP,mEAAmB,CAAA;AACpB,CAAC,EAVW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAUtB","sourcesContent":["export enum SpellSchool {\n\tNONE = 0,\n\tARCANE = 1,\n\tFIRE = 2,\n\tFROST = 3,\n\tNATURE = 4,\n\tHOLY = 5,\n\tSHADOW = 6,\n\tFEL = 7,\n\tPHYSICAL_COMBAT = 8,\n}\n"]}
@@ -0,0 +1,20 @@
1
+ export declare enum Step {
2
+ INVALID = 0,
3
+ BEGIN_FIRST = 1,
4
+ BEGIN_SHUFFLE = 2,
5
+ BEGIN_DRAW = 3,
6
+ BEGIN_MULLIGAN = 4,
7
+ MAIN_BEGIN = 5,
8
+ MAIN_READY = 6,
9
+ MAIN_RESOURCE = 7,
10
+ MAIN_DRAW = 8,
11
+ MAIN_START = 9,
12
+ MAIN_ACTION = 10,
13
+ MAIN_COMBAT = 11,
14
+ MAIN_END = 12,
15
+ MAIN_NEXT = 13,
16
+ FINAL_WRAPUP = 14,
17
+ FINAL_GAMEOVER = 15,
18
+ MAIN_CLEANUP = 16,
19
+ MAIN_START_TRIGGERS = 17
20
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Step = void 0;
4
+ var Step;
5
+ (function (Step) {
6
+ Step[Step["INVALID"] = 0] = "INVALID";
7
+ Step[Step["BEGIN_FIRST"] = 1] = "BEGIN_FIRST";
8
+ Step[Step["BEGIN_SHUFFLE"] = 2] = "BEGIN_SHUFFLE";
9
+ Step[Step["BEGIN_DRAW"] = 3] = "BEGIN_DRAW";
10
+ Step[Step["BEGIN_MULLIGAN"] = 4] = "BEGIN_MULLIGAN";
11
+ Step[Step["MAIN_BEGIN"] = 5] = "MAIN_BEGIN";
12
+ Step[Step["MAIN_READY"] = 6] = "MAIN_READY";
13
+ Step[Step["MAIN_RESOURCE"] = 7] = "MAIN_RESOURCE";
14
+ Step[Step["MAIN_DRAW"] = 8] = "MAIN_DRAW";
15
+ Step[Step["MAIN_START"] = 9] = "MAIN_START";
16
+ Step[Step["MAIN_ACTION"] = 10] = "MAIN_ACTION";
17
+ Step[Step["MAIN_COMBAT"] = 11] = "MAIN_COMBAT";
18
+ Step[Step["MAIN_END"] = 12] = "MAIN_END";
19
+ Step[Step["MAIN_NEXT"] = 13] = "MAIN_NEXT";
20
+ Step[Step["FINAL_WRAPUP"] = 14] = "FINAL_WRAPUP";
21
+ Step[Step["FINAL_GAMEOVER"] = 15] = "FINAL_GAMEOVER";
22
+ Step[Step["MAIN_CLEANUP"] = 16] = "MAIN_CLEANUP";
23
+ Step[Step["MAIN_START_TRIGGERS"] = 17] = "MAIN_START_TRIGGERS";
24
+ })(Step = exports.Step || (exports.Step = {}));
25
+ //# sourceMappingURL=step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/enums/step.ts"],"names":[],"mappings":";;;AAAA,IAAY,IAmBX;AAnBD,WAAY,IAAI;IACf,qCAAW,CAAA;IACX,6CAAe,CAAA;IACf,iDAAiB,CAAA;IACjB,2CAAc,CAAA;IACd,mDAAkB,CAAA;IAClB,2CAAc,CAAA;IACd,2CAAc,CAAA;IACd,iDAAiB,CAAA;IACjB,yCAAa,CAAA;IACb,2CAAc,CAAA;IACd,8CAAgB,CAAA;IAChB,8CAAgB,CAAA;IAChB,wCAAa,CAAA;IACb,0CAAc,CAAA;IACd,gDAAiB,CAAA;IACjB,oDAAmB,CAAA;IACnB,gDAAiB,CAAA;IACjB,8DAAwB,CAAA;AACzB,CAAC,EAnBW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAmBf","sourcesContent":["export enum Step {\n\tINVALID = 0,\n\tBEGIN_FIRST = 1,\n\tBEGIN_SHUFFLE = 2,\n\tBEGIN_DRAW = 3,\n\tBEGIN_MULLIGAN = 4,\n\tMAIN_BEGIN = 5,\n\tMAIN_READY = 6,\n\tMAIN_RESOURCE = 7,\n\tMAIN_DRAW = 8,\n\tMAIN_START = 9,\n\tMAIN_ACTION = 10,\n\tMAIN_COMBAT = 11,\n\tMAIN_END = 12,\n\tMAIN_NEXT = 13,\n\tFINAL_WRAPUP = 14,\n\tFINAL_GAMEOVER = 15,\n\tMAIN_CLEANUP = 16,\n\tMAIN_START_TRIGGERS = 17,\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export declare enum Zone {
2
+ INVALID = 0,
3
+ PLAY = 1,
4
+ DECK = 2,
5
+ HAND = 3,
6
+ GRAVEYARD = 4,
7
+ REMOVEDFROMGAME = 5,
8
+ SETASIDE = 6,
9
+ SECRET = 7,
10
+ STUB_ZONE_8 = 8
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Zone = void 0;
4
+ var Zone;
5
+ (function (Zone) {
6
+ Zone[Zone["INVALID"] = 0] = "INVALID";
7
+ Zone[Zone["PLAY"] = 1] = "PLAY";
8
+ Zone[Zone["DECK"] = 2] = "DECK";
9
+ Zone[Zone["HAND"] = 3] = "HAND";
10
+ Zone[Zone["GRAVEYARD"] = 4] = "GRAVEYARD";
11
+ Zone[Zone["REMOVEDFROMGAME"] = 5] = "REMOVEDFROMGAME";
12
+ Zone[Zone["SETASIDE"] = 6] = "SETASIDE";
13
+ Zone[Zone["SECRET"] = 7] = "SECRET";
14
+ Zone[Zone["STUB_ZONE_8"] = 8] = "STUB_ZONE_8";
15
+ })(Zone = exports.Zone || (exports.Zone = {}));
16
+ //# sourceMappingURL=zone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zone.js","sourceRoot":"","sources":["../../src/enums/zone.ts"],"names":[],"mappings":";;;AAAA,IAAY,IAUX;AAVD,WAAY,IAAI;IACf,qCAAW,CAAA;IACX,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,yCAAa,CAAA;IACb,qDAAmB,CAAA;IACnB,uCAAY,CAAA;IACZ,mCAAU,CAAA;IACV,6CAAe,CAAA;AAChB,CAAC,EAVW,IAAI,GAAJ,YAAI,KAAJ,YAAI,QAUf","sourcesContent":["export enum Zone {\n\tINVALID = 0,\n\tPLAY = 1,\n\tDECK = 2,\n\tHAND = 3,\n\tGRAVEYARD = 4,\n\tREMOVEDFROMGAME = 5,\n\tSETASIDE = 6,\n\tSECRET = 7,\n\tSTUB_ZONE_8 = 8,\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare type RarityTYpe = 'Common' | 'Rare' | 'Epic' | 'Legendary' | 'Free' | undefined;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rarity.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rarity.type.js","sourceRoot":"","sources":["../../../src/models/reference-cards/rarity.type.ts"],"names":[],"mappings":"","sourcesContent":["export type RarityTYpe = 'Common' | 'Rare' | 'Epic' | 'Legendary' | 'Free' | undefined;\r\n"]}
@@ -0,0 +1,37 @@
1
+ import { RarityTYpe } from './rarity.type';
2
+ import { ReferencePlayerClass } from './reference-player-class';
3
+ export interface ReferenceCard {
4
+ readonly id: string;
5
+ readonly dbfId: number;
6
+ readonly name: string;
7
+ readonly set: string;
8
+ readonly playerClass: ReferencePlayerClass;
9
+ readonly classes?: readonly string[];
10
+ readonly cardClass: string;
11
+ readonly cost?: number;
12
+ readonly attack?: number;
13
+ readonly health?: number;
14
+ readonly audio?: {
15
+ [audioKey: string]: readonly string[];
16
+ };
17
+ readonly text: string;
18
+ readonly collectionText: string;
19
+ readonly flavor: string;
20
+ readonly type: string;
21
+ readonly mechanics: string[];
22
+ readonly referencedTags?: string[];
23
+ readonly rarity?: RarityTYpe;
24
+ readonly collectible?: boolean;
25
+ readonly race?: string;
26
+ readonly techLevel?: number;
27
+ readonly durability?: number;
28
+ readonly armor?: number;
29
+ readonly battlegroundsHero?: boolean;
30
+ readonly battlegroundsHeroSkin?: boolean;
31
+ readonly battlegroundsHeroParentDbfId?: number;
32
+ readonly battlegroundsPremiumDbfId?: number;
33
+ readonly battlegroundsNormalDbfId?: number;
34
+ readonly spellSchool?: string;
35
+ readonly artist?: string;
36
+ readonly questRewardDbfId?: number;
37
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=reference-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-card.js","sourceRoot":"","sources":["../../../src/models/reference-cards/reference-card.ts"],"names":[],"mappings":"","sourcesContent":["import { RarityTYpe } from './rarity.type';\r\nimport { ReferencePlayerClass } from './reference-player-class';\r\n\r\nexport interface ReferenceCard {\r\n\treadonly id: string;\r\n\treadonly dbfId: number;\r\n\treadonly name: string;\r\n\treadonly set: string;\r\n\treadonly playerClass: ReferencePlayerClass;\r\n\treadonly classes?: readonly string[];\r\n\treadonly cardClass: string;\r\n\treadonly cost?: number;\r\n\treadonly attack?: number;\r\n\treadonly health?: number;\r\n\treadonly audio?: {\r\n\t\t[audioKey: string]: readonly string[];\r\n\t};\r\n\treadonly text: string;\r\n\treadonly collectionText: string;\r\n\treadonly flavor: string;\r\n\treadonly type: string;\r\n\treadonly mechanics: string[];\r\n\treadonly referencedTags?: string[];\r\n\treadonly rarity?: RarityTYpe;\r\n\treadonly collectible?: boolean;\r\n\treadonly race?: string;\r\n\treadonly techLevel?: number;\r\n\treadonly durability?: number;\r\n\treadonly armor?: number;\r\n\treadonly battlegroundsHero?: boolean;\r\n\treadonly battlegroundsHeroSkin?: boolean;\r\n\treadonly battlegroundsHeroParentDbfId?: number;\r\n\treadonly battlegroundsPremiumDbfId?: number;\r\n\treadonly battlegroundsNormalDbfId?: number;\r\n\t// TODO: change this to use the enum later?\r\n\treadonly spellSchool?: string;\r\n\treadonly artist?: string;\r\n\treadonly questRewardDbfId?: number;\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ export declare type ReferencePlayerClass = 'Priest' | 'Rogue' | 'Warrior' | 'Warlock' | 'Druid' | 'Shaman' | 'Mage' | 'Paladin' | 'Hunter' | 'DemonHunter' | 'Neutral';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=reference-player-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-player-class.js","sourceRoot":"","sources":["../../../src/models/reference-cards/reference-player-class.ts"],"names":[],"mappings":"","sourcesContent":["export type ReferencePlayerClass =\r\n\t| 'Priest'\r\n\t| 'Rogue'\r\n\t| 'Warrior'\r\n\t| 'Warlock'\r\n\t| 'Druid'\r\n\t| 'Shaman'\r\n\t| 'Mage'\r\n\t| 'Paladin'\r\n\t| 'Hunter'\r\n\t| 'DemonHunter'\r\n\t| 'Neutral';\r\n"]}
@@ -0,0 +1,31 @@
1
+ export * from './card-ids';
2
+ export * from './enums/block-type';
3
+ export * from './enums/bnet-region';
4
+ export * from './enums/board';
5
+ export * from './enums/booster-type';
6
+ export * from './enums/card-class';
7
+ export * from './enums/card-rarity';
8
+ export * from './enums/card-set';
9
+ export * from './enums/card-type';
10
+ export * from './enums/choice-type';
11
+ export * from './enums/game-format';
12
+ export * from './enums/game-tags';
13
+ export * from './enums/game-type';
14
+ export * from './enums/meta-tags';
15
+ export * from './enums/mulligan';
16
+ export * from './enums/multi-class-group';
17
+ export * from './enums/playstate';
18
+ export * from './enums/race';
19
+ export * from './enums/reward-type';
20
+ export * from './enums/scenario-groups';
21
+ export * from './enums/scenario-id';
22
+ export * from './enums/scene';
23
+ export * from './enums/spell-school';
24
+ export * from './enums/step';
25
+ export * from './enums/zone';
26
+ export * from './models/reference-cards/rarity.type';
27
+ export * from './models/reference-cards/reference-card';
28
+ export * from './models/reference-cards/reference-player-class';
29
+ export * from './services/all-cards.service';
30
+ export * from './services/cards-info';
31
+ export * from './services/hs-utils';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./card-ids"), exports);
14
+ __exportStar(require("./enums/block-type"), exports);
15
+ __exportStar(require("./enums/bnet-region"), exports);
16
+ __exportStar(require("./enums/board"), exports);
17
+ __exportStar(require("./enums/booster-type"), exports);
18
+ __exportStar(require("./enums/card-class"), exports);
19
+ __exportStar(require("./enums/card-rarity"), exports);
20
+ __exportStar(require("./enums/card-set"), exports);
21
+ __exportStar(require("./enums/card-type"), exports);
22
+ __exportStar(require("./enums/choice-type"), exports);
23
+ __exportStar(require("./enums/game-format"), exports);
24
+ __exportStar(require("./enums/game-tags"), exports);
25
+ __exportStar(require("./enums/game-type"), exports);
26
+ __exportStar(require("./enums/meta-tags"), exports);
27
+ __exportStar(require("./enums/mulligan"), exports);
28
+ __exportStar(require("./enums/multi-class-group"), exports);
29
+ __exportStar(require("./enums/playstate"), exports);
30
+ __exportStar(require("./enums/race"), exports);
31
+ __exportStar(require("./enums/reward-type"), exports);
32
+ __exportStar(require("./enums/scenario-groups"), exports);
33
+ __exportStar(require("./enums/scenario-id"), exports);
34
+ __exportStar(require("./enums/scene"), exports);
35
+ __exportStar(require("./enums/spell-school"), exports);
36
+ __exportStar(require("./enums/step"), exports);
37
+ __exportStar(require("./enums/zone"), exports);
38
+ __exportStar(require("./models/reference-cards/rarity.type"), exports);
39
+ __exportStar(require("./models/reference-cards/reference-card"), exports);
40
+ __exportStar(require("./models/reference-cards/reference-player-class"), exports);
41
+ __exportStar(require("./services/all-cards.service"), exports);
42
+ __exportStar(require("./services/cards-info"), exports);
43
+ __exportStar(require("./services/hs-utils"), exports);
44
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,6CAA2B;AAC3B,qDAAmC;AACnC,sDAAoC;AACpC,gDAA8B;AAC9B,uDAAqC;AACrC,qDAAmC;AACnC,sDAAoC;AACpC,mDAAiC;AACjC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,+CAA6B;AAC7B,sDAAoC;AACpC,0DAAwC;AACxC,sDAAoC;AACpC,gDAA8B;AAC9B,uDAAqC;AACrC,+CAA6B;AAC7B,+CAA6B;AAC7B,uEAAqD;AACrD,0EAAwD;AACxD,kFAAgE;AAChE,+DAA6C;AAC7C,wDAAsC;AACtC,sDAAoC","sourcesContent":["/*\n * Public API Surface of reference-data\n */\n\nexport * from './card-ids';\nexport * from './enums/block-type';\nexport * from './enums/bnet-region';\nexport * from './enums/board';\nexport * from './enums/booster-type';\nexport * from './enums/card-class';\nexport * from './enums/card-rarity';\nexport * from './enums/card-set';\nexport * from './enums/card-type';\nexport * from './enums/choice-type';\nexport * from './enums/game-format';\nexport * from './enums/game-tags';\nexport * from './enums/game-type';\nexport * from './enums/meta-tags';\nexport * from './enums/mulligan';\nexport * from './enums/multi-class-group';\nexport * from './enums/playstate';\nexport * from './enums/race';\nexport * from './enums/reward-type';\nexport * from './enums/scenario-groups';\nexport * from './enums/scenario-id';\nexport * from './enums/scene';\nexport * from './enums/spell-school';\nexport * from './enums/step';\nexport * from './enums/zone';\nexport * from './models/reference-cards/rarity.type';\nexport * from './models/reference-cards/reference-card';\nexport * from './models/reference-cards/reference-player-class';\nexport * from './services/all-cards.service';\nexport * from './services/cards-info';\nexport * from './services/hs-utils';\n"]}
@@ -0,0 +1,12 @@
1
+ import { ReferenceCard } from '../models/reference-cards/reference-card';
2
+ export declare class AllCardsService {
3
+ private allCards;
4
+ private cache;
5
+ constructor();
6
+ getCard(id: string, errorWhenUndefined?: boolean): ReferenceCard;
7
+ getCardFromDbfId(dbfId: number): ReferenceCard;
8
+ getCardsFromDbfIds(dbfIds: number[]): ReferenceCard[];
9
+ getCards(): ReferenceCard[];
10
+ initializeCardsDb(version?: string): Promise<void>;
11
+ }
12
+ export declare const getBaseCardId: (cardId: string) => string;
@@ -0,0 +1,263 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getBaseCardId = exports.AllCardsService = void 0;
13
+ const card_ids_1 = require("../card-ids");
14
+ const utils_1 = require("./utils");
15
+ const CARDS_CDN_URL = 'https://static.zerotoheroes.com/hearthstone/jsoncards/cards.json?v=0';
16
+ class AllCardsService {
17
+ constructor() {
18
+ this.cache = {};
19
+ }
20
+ getCard(id, errorWhenUndefined = true) {
21
+ if (this.cache[id]) {
22
+ return this.cache[id];
23
+ }
24
+ if (!this.allCards) {
25
+ return {};
26
+ }
27
+ const candidates = this.allCards.filter((card) => card.id === id);
28
+ if (errorWhenUndefined && (!candidates || candidates.length === 0)) {
29
+ console.debug('Could not find card for id', id, new Error().stack);
30
+ return {};
31
+ }
32
+ if (candidates.length === 1) {
33
+ this.cache[id] = candidates[0];
34
+ }
35
+ return candidates[0];
36
+ }
37
+ getCardFromDbfId(dbfId) {
38
+ if (!this.allCards) {
39
+ return {};
40
+ }
41
+ return this.allCards.find((card) => card.dbfId === +dbfId);
42
+ }
43
+ getCardsFromDbfIds(dbfIds) {
44
+ if (!this.allCards) {
45
+ return [];
46
+ }
47
+ return this.allCards.filter((card) => dbfIds.indexOf(card.dbfId) !== -1);
48
+ }
49
+ getCards() {
50
+ return this.allCards;
51
+ }
52
+ initializeCardsDb(version = '') {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ console.debug('[all-cards] asked to retrieve cards from CDN', version, new Error().stack);
55
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
56
+ if (this.allCards) {
57
+ resolve();
58
+ return;
59
+ }
60
+ this.cache = {};
61
+ const cardsStr = yield utils_1.http(CARDS_CDN_URL + version);
62
+ if (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {
63
+ console.error('[all-cards] could not load cards', CARDS_CDN_URL + version, cardsStr);
64
+ this.allCards = [];
65
+ }
66
+ else {
67
+ this.allCards = JSON.parse(cardsStr);
68
+ }
69
+ for (const card of this.allCards) {
70
+ if (card.id) {
71
+ this.cache[card.id] = card;
72
+ }
73
+ }
74
+ resolve();
75
+ }));
76
+ });
77
+ }
78
+ }
79
+ exports.AllCardsService = AllCardsService;
80
+ const getBaseCardId = (cardId) => {
81
+ if (!cardId) {
82
+ return null;
83
+ }
84
+ switch (cardId) {
85
+ case 'LOOT_103t1':
86
+ case 'LOOT_103t2':
87
+ return 'LOOT_103';
88
+ case 'LOOT_043t2':
89
+ case 'LOOT_043t3':
90
+ return 'LOOT_043';
91
+ case 'LOOT_051t1':
92
+ case 'LOOT_051t2':
93
+ return 'LOOT_051';
94
+ case 'LOOT_064t1':
95
+ case 'LOOT_064t2':
96
+ return 'LOOT_064';
97
+ case 'LOOT_080t2':
98
+ case 'LOOT_080t3':
99
+ return 'LOOT_080';
100
+ case 'LOOT_091t1':
101
+ case 'LOOT_091t2':
102
+ return 'LOOT_091';
103
+ case 'LOOT_203t2':
104
+ case 'LOOT_203t3':
105
+ return 'LOOT_203';
106
+ case 'LOOT_503t':
107
+ case 'LOOT_503t2':
108
+ return 'LOOT_503';
109
+ case 'LOOT_507t':
110
+ case 'LOOT_507t2':
111
+ return 'LOOT_507';
112
+ case 'FB_Champs_LOOT_080t2':
113
+ case 'FB_Champs_LOOT_080t3':
114
+ return 'FB_Champs_LOOT_080';
115
+ case 'LOOT_278t1':
116
+ return 'LOOT_278';
117
+ case 'LOOT_278t2':
118
+ return 'LOOT_278';
119
+ case 'LOOT_278t3':
120
+ return 'LOOT_278';
121
+ case 'LOOT_278t4':
122
+ return 'LOOT_278';
123
+ case 'LOOT_285t':
124
+ return 'LOOT_285';
125
+ case 'LOOT_285t2':
126
+ return 'LOOT_285';
127
+ case 'LOOT_285t3':
128
+ return 'LOOT_285';
129
+ case 'LOOT_285t4':
130
+ return 'LOOT_285';
131
+ case 'LOOT_286t1':
132
+ return 'LOOT_286';
133
+ case 'LOOT_286t2':
134
+ return 'LOOT_286';
135
+ case 'LOOT_286t3':
136
+ return 'LOOT_286';
137
+ case 'LOOT_286t4':
138
+ return 'LOOT_286';
139
+ case 'DAL_366t1':
140
+ return 'DAL_366';
141
+ case 'DAL_366t2':
142
+ return 'DAL_366';
143
+ case 'DAL_366t3':
144
+ return 'DAL_366';
145
+ case 'DAL_366t4':
146
+ return 'DAL_366';
147
+ case card_ids_1.CardIds.GalakrondTheTempest_GalakrondTheApocalypseToken:
148
+ case card_ids_1.CardIds.GalakrondTheTempest_GalakrondAzerothsEndToken:
149
+ return card_ids_1.CardIds.GalakrondTheTempest;
150
+ case card_ids_1.CardIds.GalakrondTheWretched_GalakrondTheApocalypseToken:
151
+ case card_ids_1.CardIds.GalakrondTheWretched_GalakrondAzerothsEndToken:
152
+ return card_ids_1.CardIds.GalakrondTheWretched;
153
+ case card_ids_1.CardIds.GalakrondTheUnspeakable_GalakrondTheApocalypseToken:
154
+ case card_ids_1.CardIds.GalakrondTheUnspeakable_GalakrondAzerothsEndToken:
155
+ return card_ids_1.CardIds.GalakrondTheUnspeakable;
156
+ case card_ids_1.CardIds.GalakrondTheNightmare_GalakrondTheApocalypseToken:
157
+ case card_ids_1.CardIds.GalakrondTheNightmare_GalakrondAzerothsEndToken:
158
+ return card_ids_1.CardIds.GalakrondTheNightmare;
159
+ case card_ids_1.CardIds.GalakrondTheUnbreakable_GalakrondTheApocalypseToken:
160
+ case card_ids_1.CardIds.GalakrondTheUnbreakable_GalakrondAzerothsEndToken:
161
+ return card_ids_1.CardIds.GalakrondTheUnbreakable;
162
+ case 'DMF_054t':
163
+ return 'DMF_054';
164
+ case 'DMF_061t':
165
+ return 'DMF_061';
166
+ case 'DMF_064t':
167
+ return 'DMF_064';
168
+ case 'DMF_073t':
169
+ return 'DMF_073';
170
+ case 'DMF_078t':
171
+ return 'DMF_078';
172
+ case 'DMF_080t':
173
+ return 'DMF_080';
174
+ case 'DMF_082t':
175
+ return 'DMF_082';
176
+ case 'DMF_083t':
177
+ return 'DMF_083';
178
+ case 'DMF_090t':
179
+ return 'DMF_090';
180
+ case 'DMF_101t':
181
+ return 'DMF_101';
182
+ case 'DMF_105t':
183
+ return 'DMF_105';
184
+ case 'DMF_117t':
185
+ return 'DMF_117';
186
+ case 'DMF_117t2':
187
+ return 'DMF_117';
188
+ case 'DMF_118t':
189
+ return 'DMF_118';
190
+ case 'DMF_124t':
191
+ return 'DMF_124';
192
+ case 'DMF_163t':
193
+ return 'DMF_163';
194
+ case 'DMF_174t':
195
+ return 'DMF_174';
196
+ case 'DMF_184t':
197
+ return 'DMF_184';
198
+ case 'DMF_186a':
199
+ return 'DMF_186';
200
+ case 'DMF_244t':
201
+ return 'DMF_244';
202
+ case 'DMF_247t':
203
+ return 'DMF_247';
204
+ case 'DMF_248t':
205
+ return 'DMF_248';
206
+ case 'DMF_517a':
207
+ return 'DMF_517';
208
+ case 'DMF_526a':
209
+ return 'DMF_526';
210
+ case 'DMF_701t':
211
+ return 'DMF_701';
212
+ case 'DMF_703t':
213
+ return 'DMF_703';
214
+ case 'DMF_730t':
215
+ return 'DMF_730';
216
+ case 'DMF_526a':
217
+ return 'DMF_526';
218
+ case card_ids_1.CardIds.DreamingDrake_DreamingDrakeToken:
219
+ return card_ids_1.CardIds.DreamingDrake;
220
+ case card_ids_1.CardIds.LibramOfJudgment_LibramOfJudgmentToken:
221
+ return card_ids_1.CardIds.LibramOfJudgment;
222
+ case card_ids_1.CardIds.LuckysoulHoarder_LuckysoulHoarderToken:
223
+ return card_ids_1.CardIds.LuckysoulHoarder;
224
+ case card_ids_1.CardIds.NitroboostPoison_NitroboostPoisonToken:
225
+ return card_ids_1.CardIds.NitroboostPoison;
226
+ case card_ids_1.CardIds.TameBeastRank1_TameBeastRank2Token:
227
+ case card_ids_1.CardIds.TameBeastRank1_TameBeastRank3Token:
228
+ return card_ids_1.CardIds.TameBeastRank1;
229
+ case card_ids_1.CardIds.ChainLightningRank1_ChainLightningRank2Token:
230
+ case card_ids_1.CardIds.ChainLightningRank1_ChainLightningRank3Token:
231
+ return card_ids_1.CardIds.ChainLightningRank1;
232
+ case card_ids_1.CardIds.FlurryRank1_FlurryRank2Token:
233
+ case card_ids_1.CardIds.FlurryRank1_FlurryRank3Token:
234
+ return card_ids_1.CardIds.FlurryRank1;
235
+ case card_ids_1.CardIds.CondemnRank1_CondemnRank2Token:
236
+ case card_ids_1.CardIds.CondemnRank1_CondemnRank3Token:
237
+ return card_ids_1.CardIds.CondemnRank1;
238
+ case card_ids_1.CardIds.WickedStabRank1_WickedStabRank2Token:
239
+ case card_ids_1.CardIds.WickedStabRank1_WickedStabRank3Token:
240
+ return card_ids_1.CardIds.WickedStabRank1;
241
+ case card_ids_1.CardIds.LivingSeedRank1_LivingSeedRank2Token:
242
+ case card_ids_1.CardIds.LivingSeedRank1_LivingSeedRank3Token:
243
+ return card_ids_1.CardIds.LivingSeedRank1;
244
+ case card_ids_1.CardIds.ConvictionRank1_ConvictionRank2Token:
245
+ case card_ids_1.CardIds.ConvictionRank1_ConvictionRank3Token:
246
+ return card_ids_1.CardIds.ConvictionRank1;
247
+ case card_ids_1.CardIds.ConditioningRank1_ConditioningRank2Token:
248
+ case card_ids_1.CardIds.ConditioningRank1_ConditioningRank3Token:
249
+ return card_ids_1.CardIds.ConditioningRank1;
250
+ case card_ids_1.CardIds.FuryRank1_FuryRank2Token:
251
+ case card_ids_1.CardIds.FuryRank1_FuryRank3Token:
252
+ return card_ids_1.CardIds.FuryRank1;
253
+ case card_ids_1.CardIds.ImpSwarmRank1_ImpSwarmRank2Token:
254
+ case card_ids_1.CardIds.ImpSwarmRank1_ImpSwarmRank3Token:
255
+ return card_ids_1.CardIds.ImpSwarmRank1;
256
+ }
257
+ if (cardId.startsWith(card_ids_1.CardIds.TransferStudent)) {
258
+ return card_ids_1.CardIds.TransferStudent;
259
+ }
260
+ return cardId;
261
+ };
262
+ exports.getBaseCardId = getBaseCardId;
263
+ //# sourceMappingURL=all-cards.service.js.map
@@ -0,0 +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/cards.json?v=0';\r\n\r\nexport class AllCardsService {\r\n\tprivate allCards: ReferenceCard[];\r\n\tprivate cache: any = {};\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\tif (this.cache[id]) {\r\n\t\t\treturn this.cache[id];\r\n\t\t}\r\n\t\tif (!this.allCards) {\r\n\t\t\t// console.debug('getCard', 'cards not initialized yet', id);\r\n\t\t\treturn {} as ReferenceCard;\r\n\t\t}\r\n\t\tconst candidates = this.allCards.filter((card) => card.id === id);\r\n\t\tif (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\tif (candidates.length === 1) {\r\n\t\t\tthis.cache[id] = candidates[0];\r\n\t\t}\r\n\t\treturn candidates[0];\r\n\t}\r\n\r\n\tpublic getCardFromDbfId(dbfId: number): ReferenceCard {\r\n\t\tif (!this.allCards) {\r\n\t\t\t// console.debug('getCardFromDbfId', 'cards not initialized yet', dbfId);\r\n\t\t\treturn {} as ReferenceCard;\r\n\t\t}\r\n\t\treturn this.allCards.find((card) => card.dbfId === +dbfId);\r\n\t}\r\n\r\n\tpublic getCardsFromDbfIds(dbfIds: number[]): ReferenceCard[] {\r\n\t\tif (!this.allCards) {\r\n\t\t\t// console.debug('getCardsFromDbfIds', 'cards not initialized yet', dbfIds);\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn this.allCards.filter((card) => dbfIds.indexOf(card.dbfId) !== -1);\r\n\t}\r\n\r\n\tpublic getCards(): ReferenceCard[] {\r\n\t\treturn this.allCards;\r\n\t}\r\n\r\n\tpublic async initializeCardsDb(version = ''): Promise<void> {\r\n\t\tconsole.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\tif (this.allCards) {\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\tconst cardsStr: string = await http(CARDS_CDN_URL + version);\r\n\t\t\tif (!cardsStr || cardsStr.length === 0 || cardsStr.startsWith('<')) {\r\n\t\t\t\tconsole.error('[all-cards] could not load cards', CARDS_CDN_URL + version, cardsStr);\r\n\t\t\t\tthis.allCards = [];\r\n\t\t\t} else {\r\n\t\t\t\t// console.debug('[all-cards] retrieved all cards');\r\n\t\t\t\tthis.allCards = JSON.parse(cardsStr);\r\n\t\t\t}\r\n\t\t\tfor (const card of this.allCards) {\r\n\t\t\t\tif (card.id) {\r\n\t\t\t\t\tthis.cache[card.id] = card;\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"]}
@@ -0,0 +1,2 @@
1
+ import { CardIds } from '../card-ids';
2
+ export declare const allDuelsTreasureCardIds: CardIds[];