isaacscript-common 8.9.1 → 9.1.0

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 (95) hide show
  1. package/dist/callbacks/postPlayerCollectible.d.ts.map +1 -1
  2. package/dist/callbacks/postPlayerCollectible.lua +78 -9
  3. package/dist/core/constantsFirstLast.d.ts +4 -4
  4. package/dist/core/constantsFirstLast.d.ts.map +1 -1
  5. package/dist/core/constantsFirstLast.lua +4 -4
  6. package/dist/features/extraConsoleCommands/listCommands.lua +14 -14
  7. package/dist/features/firstLast.d.ts +9 -9
  8. package/dist/features/firstLast.d.ts.map +1 -1
  9. package/dist/features/firstLast.lua +26 -26
  10. package/dist/features/playerInventory.d.ts.map +1 -1
  11. package/dist/features/playerInventory.lua +8 -10
  12. package/dist/features/preventCollectibleRotation.lua +2 -2
  13. package/dist/functions/cards.d.ts +27 -36
  14. package/dist/functions/cards.d.ts.map +1 -1
  15. package/dist/functions/cards.lua +70 -79
  16. package/dist/functions/collectibleCacheFlag.d.ts +4 -1
  17. package/dist/functions/collectibleCacheFlag.d.ts.map +1 -1
  18. package/dist/functions/collectibleCacheFlag.lua +5 -2
  19. package/dist/functions/collectibles.d.ts +1 -6
  20. package/dist/functions/collectibles.d.ts.map +1 -1
  21. package/dist/functions/collectibles.lua +1 -6
  22. package/dist/functions/debug.d.ts +25 -0
  23. package/dist/functions/debug.d.ts.map +1 -1
  24. package/dist/functions/debug.lua +50 -0
  25. package/dist/functions/familiars.d.ts.map +1 -1
  26. package/dist/functions/itemPool.lua +9 -11
  27. package/dist/functions/log.d.ts +2 -7
  28. package/dist/functions/log.d.ts.map +1 -1
  29. package/dist/functions/log.lua +9 -31
  30. package/dist/functions/pickupsSpecific.d.ts +9 -9
  31. package/dist/functions/pickupsSpecific.d.ts.map +1 -1
  32. package/dist/functions/pickupsSpecific.lua +16 -16
  33. package/dist/functions/pills.d.ts +1 -6
  34. package/dist/functions/pills.d.ts.map +1 -1
  35. package/dist/functions/pills.lua +1 -6
  36. package/dist/functions/players.d.ts +6 -0
  37. package/dist/functions/players.d.ts.map +1 -1
  38. package/dist/functions/players.lua +7 -1
  39. package/dist/functions/pocketItems.lua +4 -4
  40. package/dist/functions/rockAlt.lua +2 -2
  41. package/dist/functions/trinkets.d.ts +1 -6
  42. package/dist/functions/trinkets.d.ts.map +1 -1
  43. package/dist/functions/trinkets.lua +1 -6
  44. package/dist/functions/types.d.ts +3 -3
  45. package/dist/functions/types.d.ts.map +1 -1
  46. package/dist/functions/types.lua +2 -2
  47. package/dist/index.d.ts +65 -78
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.lua +0 -8
  50. package/dist/maps/cardMap.d.ts +2 -2
  51. package/dist/maps/cardMap.d.ts.map +1 -1
  52. package/dist/maps/cardMap.lua +203 -203
  53. package/dist/objects/cardDescriptions.d.ts +2 -2
  54. package/dist/objects/cardDescriptions.d.ts.map +1 -1
  55. package/dist/objects/cardDescriptions.lua +99 -99
  56. package/dist/objects/cardNames.d.ts +2 -2
  57. package/dist/objects/cardNames.d.ts.map +1 -1
  58. package/dist/objects/cardNames.lua +99 -99
  59. package/dist/objects/cardTypeToItemConfigCardType.d.ts +6 -0
  60. package/dist/objects/cardTypeToItemConfigCardType.d.ts.map +1 -0
  61. package/dist/objects/cardTypeToItemConfigCardType.lua +106 -0
  62. package/package.json +2 -2
  63. package/src/callbacks/postPlayerCollectible.ts +89 -10
  64. package/src/core/constantsFirstLast.ts +4 -4
  65. package/src/features/extraConsoleCommands/listCommands.ts +16 -16
  66. package/src/features/firstLast.ts +26 -26
  67. package/src/features/playerInventory.ts +6 -10
  68. package/src/features/preventCollectibleRotation.ts +2 -2
  69. package/src/functions/cards.ts +102 -86
  70. package/src/functions/collectibleCacheFlag.ts +6 -2
  71. package/src/functions/collectibles.ts +1 -6
  72. package/src/functions/debug.ts +49 -0
  73. package/src/functions/familiars.ts +1 -0
  74. package/src/functions/itemPool.ts +6 -7
  75. package/src/functions/log.ts +15 -35
  76. package/src/functions/pickupsSpecific.ts +16 -13
  77. package/src/functions/pills.ts +1 -6
  78. package/src/functions/players.ts +14 -1
  79. package/src/functions/pocketItems.ts +4 -4
  80. package/src/functions/rockAlt.ts +2 -2
  81. package/src/functions/trinkets.ts +1 -6
  82. package/src/functions/types.ts +3 -3
  83. package/src/index.ts +0 -1
  84. package/src/maps/cardMap.ts +204 -204
  85. package/src/objects/cardDescriptions.ts +100 -100
  86. package/src/objects/cardNames.ts +100 -100
  87. package/src/objects/cardTypeToItemConfigCardType.ts +106 -0
  88. package/dist/functions/dev.d.ts +0 -20
  89. package/dist/functions/dev.d.ts.map +0 -1
  90. package/dist/functions/dev.lua +0 -34
  91. package/dist/objects/cardTypes.d.ts +0 -6
  92. package/dist/objects/cardTypes.d.ts.map +0 -1
  93. package/dist/objects/cardTypes.lua +0 -106
  94. package/src/functions/dev.ts +0 -31
  95. package/src/objects/cardTypes.ts +0 -104
@@ -223,6 +223,8 @@ export function getPlayerCloserThan(
223
223
  * collectible type(s) provided.
224
224
  *
225
225
  * This function is variadic, meaning that you can specify N collectible types.
226
+ *
227
+ * Note that this will filter out non-real collectibles like Lilith's Incubus.
226
228
  */
227
229
  export function getPlayerCollectibleCount(
228
230
  player: EntityPlayer,
@@ -230,6 +232,8 @@ export function getPlayerCollectibleCount(
230
232
  ): int {
231
233
  let numCollectibles = 0;
232
234
  for (const collectibleType of collectibleTypes) {
235
+ // We need to specify "true" as the second argument here to filter out things like Lilith's
236
+ // Incubus.
233
237
  numCollectibles += player.GetCollectibleNum(collectibleType, true);
234
238
  }
235
239
 
@@ -239,6 +243,8 @@ export function getPlayerCollectibleCount(
239
243
  /**
240
244
  * Iterates over every item in the game and returns a map containing the number of each item that
241
245
  * the player has.
246
+ *
247
+ * Note that this will filter out non-real collectibles like Lilith's Incubus.
242
248
  */
243
249
  export function getPlayerCollectibleMap(
244
250
  player: EntityPlayer,
@@ -247,6 +253,8 @@ export function getPlayerCollectibleMap(
247
253
 
248
254
  const collectibleMap = new Map<CollectibleType, int>();
249
255
  for (const collectibleType of collectibleArray) {
256
+ // We need to specify "true" as the second argument here to filter out things like Lilith's
257
+ // Incubus.
250
258
  const collectibleNum = player.GetCollectibleNum(collectibleType, true);
251
259
  if (collectibleNum > 0) {
252
260
  collectibleMap.set(collectibleType, collectibleNum);
@@ -374,14 +382,19 @@ export function getPlayersWithTrinket(
374
382
  /**
375
383
  * Returns the total number of collectibles amongst all players. For example, if player 1 has 1 Sad
376
384
  * Onion and player 2 has 2 Sad Onions, then this function would return 3.
385
+ *
386
+ * Note that this will filter out non-real collectibles like Lilith's Incubus.
377
387
  */
378
388
  export function getTotalPlayerCollectibles(
379
389
  collectibleType: CollectibleType,
380
390
  ): int {
381
391
  const players = getPlayers();
382
392
  const numCollectiblesArray = players.map((player) =>
383
- player.GetCollectibleNum(collectibleType),
393
+ // We need to specify "true" as the second argument here to filter out things like Lilith's
394
+ // Incubus.
395
+ player.GetCollectibleNum(collectibleType, true),
384
396
  );
397
+
385
398
  return sumArray(numCollectiblesArray);
386
399
  }
387
400
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ActiveSlot,
3
- Card,
3
+ CardType,
4
4
  CollectibleType,
5
5
  PillColor,
6
6
  PlayerType,
@@ -64,14 +64,14 @@ export function getPocketItems(player: EntityPlayer): PocketItemDescription[] {
64
64
  let pocketItemIdentified = false;
65
65
  let pocketItem2Identified = false;
66
66
  for (const slot of pocketItemSlots) {
67
- const card = player.GetCard(slot);
67
+ const cardType = player.GetCard(slot);
68
68
  const pillColor = player.GetPill(slot);
69
69
 
70
- if (card !== Card.NULL) {
70
+ if (cardType !== CardType.NULL) {
71
71
  pocketItems.push({
72
72
  slot,
73
73
  type: PocketItemType.CARD,
74
- subType: card,
74
+ subType: cardType,
75
75
  });
76
76
  } else if (pillColor !== PillColor.NULL) {
77
77
  pocketItems.push({
@@ -1,5 +1,5 @@
1
1
  import {
2
- Card,
2
+ CardType,
3
3
  CoinSubType,
4
4
  CollectibleType,
5
5
  EffectVariant,
@@ -278,7 +278,7 @@ function spawnRockAltRewardSkull(position: Vector, rng: RNG): boolean {
278
278
 
279
279
  totalChance += ROCK_ALT_CHANCES.BASIC_DROP;
280
280
  if (chance < totalChance) {
281
- spawnCardWithSeed(Card.NULL, position, rng);
281
+ spawnCardWithSeed(CardType.NULL, position, rng);
282
282
  return true;
283
283
  }
284
284
 
@@ -118,12 +118,7 @@ export function getTrinketGfxFilename(trinketType: TrinketType): string {
118
118
  * Helper function to get the name of a trinket. Returns "Unknown" if the provided trinket type is
119
119
  * not valid.
120
120
  *
121
- * For example:
122
- *
123
- * ```ts
124
- * const trinketType = TrinketType.SWALLOWED_PENNY;
125
- * const trinketName = getTrinketName(trinketType); // trinketName is "Swallowed Penny"
126
- * ```
121
+ * For example, `getTrinketName(TrinketType.SWALLOWED_PENNY)` would return "Swallowed Penny".
127
122
  */
128
123
  export function getTrinketName(trinketType: TrinketType): string {
129
124
  // "ItemConfigItem.Name" is bugged with vanilla items on patch v1.7.6, so we use a hard-coded map
@@ -1,5 +1,5 @@
1
1
  import {
2
- Card,
2
+ CardType,
3
3
  CollectibleType,
4
4
  LevelStage,
5
5
  NpcState,
@@ -10,12 +10,12 @@ import {
10
10
  } from "isaac-typescript-definitions";
11
11
 
12
12
  /**
13
- * Helper function to safely cast a `number` to a `Card`. (This is better than using the `as`
13
+ * Helper function to safely cast a `number` to a `CardType`. (This is better than using the `as`
14
14
  * TypeScript keyword to do a type assertion, since that can obfuscate compiler errors. )
15
15
  *
16
16
  * This is useful to satisfy the "isaacscript/strict-enums" ESLint rule.
17
17
  */
18
- export function asCard(num: number): Card {
18
+ export function asCardType(num: number): CardType {
19
19
  return num;
20
20
  }
21
21
 
package/src/index.ts CHANGED
@@ -67,7 +67,6 @@ export * from "./functions/curses";
67
67
  export * from "./functions/debug";
68
68
  export * from "./functions/deepCopy";
69
69
  export * from "./functions/deepCopyTests";
70
- export * from "./functions/dev";
71
70
  export * from "./functions/dimensions";
72
71
  export * from "./functions/direction";
73
72
  export * from "./functions/doors";
@@ -1,209 +1,209 @@
1
- import { Card } from "isaac-typescript-definitions";
1
+ import { CardType } from "isaac-typescript-definitions";
2
2
 
3
3
  // cspell:ignore hiero
4
4
 
5
5
  /** Maps card names to card sub-types. */
6
- export const CARD_MAP: ReadonlyMap<string, Card> = new Map([
7
- ["fool", Card.FOOL], // 1
8
- ["magician", Card.MAGICIAN], // 2
9
- ["mag", Card.MAGICIAN], // 2 - Needed since we have "mag?"
10
- ["highPriestess", Card.HIGH_PRIESTESS], // 3
11
- ["priestess", Card.HIGH_PRIESTESS], // 3
12
- ["priest", Card.HIGH_PRIESTESS], // 3 - Needed since we have "priest?"
13
- ["hp", Card.HIGH_PRIESTESS], // 3
14
- ["empress", Card.EMPRESS], // 4
15
- ["emperor", Card.EMPEROR], // 5
16
- ["emp", Card.EMPEROR], // 5 - Needed since we have "hemp?"
17
- ["hierophant", Card.HIEROPHANT], // 6
18
- ["hi", Card.HIEROPHANT], // 6 - Needed since we have "hiero?"
19
- ["lovers", Card.LOVERS], // 7
20
- ["chariot", Card.CHARIOT], // 8
21
- ["justice", Card.JUSTICE], // 9
22
- ["hermit", Card.HERMIT], // 10
23
- ["wheelOfFortune", Card.WHEEL_OF_FORTUNE], // 11
24
- ["wheel", Card.WHEEL_OF_FORTUNE], // 11 - Needed since we have "wheel?"
25
- ["fortune", Card.WHEEL_OF_FORTUNE], // 11
26
- ["strength", Card.STRENGTH], // 12
27
- ["str", Card.STRENGTH], // 12 - Needed since we have "str?"
28
- ["hangedMan", Card.HANGED_MAN], // 13
29
- ["hanged", Card.HANGED_MAN], // 13
30
- ["death", Card.DEATH], // 14
31
- ["temperance", Card.TEMPERANCE], // 15
32
- ["devil", Card.DEVIL], // 16
33
- ["tower", Card.TOWER], // 17
34
- ["stars", Card.STARS], // 18
35
- ["moon", Card.MOON], // 19
36
- ["sun", Card.SUN], // 20
37
- ["judgement", Card.JUDGEMENT], // 21
38
- ["judge", Card.JUDGEMENT], // 21 - Needed since we have "judge?"
39
- ["world", Card.WORLD], // 22
40
- ["2OfClubs", Card.CLUBS_2], // 23
41
- ["2Clubs", Card.CLUBS_2], // 23
42
- ["2OfDiamonds", Card.DIAMONDS_2], // 24
43
- ["2Diamonds", Card.DIAMONDS_2], // 24
44
- ["2OfSpades", Card.SPADES_2], // 25
45
- ["2Spades", Card.SPADES_2], // 25
46
- ["2OfHearts", Card.HEARTS_2], // 26
47
- ["2Hearts", Card.HEARTS_2], // 26
48
- ["aceOfClubs", Card.ACE_OF_CLUBS], // 27
49
- ["aceClubs", Card.ACE_OF_CLUBS], // 27
50
- ["aceOfDiamonds", Card.ACE_OF_DIAMONDS], // 28
51
- ["aceDiamonds", Card.ACE_OF_DIAMONDS], // 28
52
- ["aceOfSpades", Card.ACE_OF_SPADES], // 29
53
- ["aceSpades", Card.ACE_OF_SPADES], // 29
54
- ["aceOfHearts", Card.ACE_OF_HEARTS], // 30
55
- ["aceHearts", Card.ACE_OF_HEARTS], // 30
56
- ["joker", Card.JOKER], // 31
57
- ["hagalaz", Card.RUNE_HAGALAZ], // 32
58
- ["destruction", Card.RUNE_HAGALAZ], // 32
59
- ["jera", Card.RUNE_JERA], // 33
60
- ["abundance", Card.RUNE_JERA], // 33
61
- ["ehwaz", Card.RUNE_EHWAZ], // 34
62
- ["passage", Card.RUNE_EHWAZ], // 34
63
- ["dagaz", Card.RUNE_DAGAZ], // 35
64
- ["purity", Card.RUNE_DAGAZ], // 35
65
- ["ansuz", Card.RUNE_ANSUZ], // 36
66
- ["vision", Card.RUNE_ANSUZ], // 36
67
- ["perthro", Card.RUNE_PERTHRO], // 37
68
- ["change", Card.RUNE_PERTHRO], // 37
69
- ["berkano", Card.RUNE_BERKANO], // 38
70
- ["companionship", Card.RUNE_BERKANO], // 38
71
- ["algiz", Card.RUNE_ALGIZ], // 39
72
- ["resistance", Card.RUNE_ALGIZ], // 39
73
- ["shield", Card.RUNE_ALGIZ], // 39
74
- ["blank", Card.RUNE_BLANK], // 40
75
- ["black", Card.RUNE_BLACK], // 41
76
- ["chaos", Card.CHAOS], // 42
77
- ["credit", Card.CREDIT], // 43
78
- ["rules", Card.RULES], // 44
79
- ["againstHumanity", Card.AGAINST_HUMANITY], // 45
80
- ["humanity", Card.AGAINST_HUMANITY], // 45
81
- ["suicideKing", Card.SUICIDE_KING], // 46
82
- ["suicide", Card.SUICIDE_KING], // 46
83
- ["getOutOfJailFree", Card.GET_OUT_OF_JAIL_FREE], // 47
84
- ["jail", Card.GET_OUT_OF_JAIL_FREE], // 47
85
- ["?", Card.QUESTION_MARK], // 48
86
- ["diceShard", Card.DICE_SHARD], // 49
87
- ["shard", Card.DICE_SHARD], // 49
88
- ["emergencyContact", Card.EMERGENCY_CONTACT], // 50
89
- ["contact", Card.EMERGENCY_CONTACT], // 50
90
- ["holy", Card.HOLY], // 51
91
- ["hugeGrowth", Card.HUGE_GROWTH], // 52
92
- ["growth", Card.HUGE_GROWTH], // 52
93
- ["ancientRecall", Card.ANCIENT_RECALL], // 53
94
- ["recall", Card.ANCIENT_RECALL], // 53
95
- ["eraWalk", Card.ERA_WALK], // 54
96
- ["walk", Card.ERA_WALK], // 54
97
- ["runeShard", Card.RUNE_SHARD], // 55
98
- ["shard", Card.RUNE_SHARD], // 55
99
- ["fool?", Card.REVERSE_FOOL], // 56
100
- ["magician?", Card.REVERSE_MAGICIAN], // 57
101
- ["magi?", Card.REVERSE_MAGICIAN], // 57
102
- ["mag?", Card.REVERSE_MAGICIAN], // 57
103
- ["highPriestess?", Card.REVERSE_HIGH_PRIESTESS], // 58
104
- ["high?", Card.REVERSE_HIGH_PRIESTESS], // 58
105
- ["hi?", Card.REVERSE_HIGH_PRIESTESS], // 58
106
- ["priestess?", Card.REVERSE_HIGH_PRIESTESS], // 58
107
- ["priest?", Card.REVERSE_HIGH_PRIESTESS], // 58
108
- ["hp?", Card.REVERSE_HIGH_PRIESTESS], // 58
109
- ["empress?", Card.REVERSE_EMPRESS], // 59
110
- ["emperor?", Card.REVERSE_EMPEROR], // 60
111
- ["emp?", Card.REVERSE_EMPEROR], // 60
112
- ["hierophant?", Card.REVERSE_HIEROPHANT], // 61
113
- ["hiero?", Card.REVERSE_HIEROPHANT], // 61
114
- ["lovers?", Card.REVERSE_LOVERS], // 62
115
- ["chariot?", Card.REVERSE_CHARIOT], // 63
116
- ["justice?", Card.REVERSE_JUSTICE], // 64
117
- ["hermit?", Card.REVERSE_HERMIT], // 65
118
- ["wheelOfFortune?", Card.REVERSE_WHEEL_OF_FORTUNE], // 66
119
- ["wheel?", Card.REVERSE_WHEEL_OF_FORTUNE], // 66
120
- ["fortune?", Card.REVERSE_WHEEL_OF_FORTUNE], // 66
121
- ["strength?", Card.REVERSE_STRENGTH], // 67
122
- ["str?", Card.REVERSE_STRENGTH], // 67
123
- ["hangedMan?", Card.REVERSE_HANGED_MAN], // 68
124
- ["hanged?", Card.REVERSE_HANGED_MAN], // 68
125
- ["death?", Card.REVERSE_DEATH], // 6
126
- ["temperance?", Card.REVERSE_TEMPERANCE], // 70
127
- ["devil?", Card.REVERSE_DEVIL], // 71
128
- ["tower?", Card.REVERSE_TOWER], // 72
129
- ["stars?", Card.REVERSE_STARS], // 73
130
- ["moon?", Card.REVERSE_MOON], // 74
131
- ["sun?", Card.REVERSE_SUN], // 75
132
- ["judgement?", Card.REVERSE_JUDGEMENT], // 76
133
- ["judge?", Card.REVERSE_JUDGEMENT], // 76
134
- ["world?", Card.REVERSE_WORLD], // 77
135
- ["crackedKey", Card.CRACKED_KEY], // 78
136
- ["key", Card.CRACKED_KEY], // 78
137
- ["queenOfHearts", Card.QUEEN_OF_HEARTS], // 79
138
- ["queenHearts", Card.QUEEN_OF_HEARTS], // 79
139
- ["wildcard", Card.WILD], // 80
140
- ["soulOfIsaac", Card.SOUL_ISAAC], // 81
141
- ["soulIsaac", Card.SOUL_ISAAC], // 81
142
- ["isaac", Card.SOUL_ISAAC], // 81
143
- ["soulOfMagdalene", Card.SOUL_MAGDALENE], // 82
144
- ["soulMagdalene", Card.SOUL_MAGDALENE], // 82
145
- ["magdalene", Card.SOUL_MAGDALENE], // 82
146
- ["soulOfCain", Card.SOUL_CAIN], // 83
147
- ["soulCain", Card.SOUL_CAIN], // 83
148
- ["cain", Card.SOUL_CAIN], // 83
149
- ["soulOfJudas", Card.SOUL_JUDAS], // 84
150
- ["soulJudas", Card.SOUL_JUDAS], // 84
151
- ["judas", Card.SOUL_JUDAS], // 84
152
- ["soulOf???", Card.SOUL_BLUE_BABY], // 85
153
- ["soul???", Card.SOUL_BLUE_BABY], // 85
154
- ["???", Card.SOUL_BLUE_BABY], // 85
155
- ["soulOfBlueBaby", Card.SOUL_BLUE_BABY], // 85
156
- ["soulBlueBaby", Card.SOUL_BLUE_BABY], // 85
157
- ["blueBaby", Card.SOUL_BLUE_BABY], // 85
158
- ["soulOfEve", Card.SOUL_EVE], // 86
159
- ["soulEve", Card.SOUL_EVE], // 86
160
- ["eve", Card.SOUL_EVE], // 86
161
- ["soulOfSamson", Card.SOUL_SAMSON], // 87
162
- ["soulSamson", Card.SOUL_SAMSON], // 87
163
- ["samson", Card.SOUL_SAMSON], // 87
164
- ["soulOfAzazel", Card.SOUL_AZAZEL], // 88
165
- ["soulAzazel", Card.SOUL_AZAZEL], // 88
166
- ["azazel", Card.SOUL_AZAZEL], // 88
167
- ["soulOfLazarus", Card.SOUL_LAZARUS], // 89
168
- ["soulLazarus", Card.SOUL_LAZARUS], // 89
169
- ["lazarus", Card.SOUL_LAZARUS], // 89
170
- ["soulOfEden", Card.SOUL_EDEN], // 90
171
- ["soulEden", Card.SOUL_EDEN], // 90
172
- ["eden", Card.SOUL_EDEN], // 90
173
- ["soulOfTheLost", Card.SOUL_LOST], // 91
174
- ["soulTheLost", Card.SOUL_LOST], // 91
175
- ["theLost", Card.SOUL_LOST], // 91
176
- ["soulOfLost", Card.SOUL_LOST], // 91
177
- ["soulLost", Card.SOUL_LOST], // 91
178
- ["lost", Card.SOUL_LOST], // 91
179
- ["soulOfLilith", Card.SOUL_LILITH], // 92
180
- ["soulLilith", Card.SOUL_LILITH], // 92
181
- ["lilith", Card.SOUL_LILITH], // 92
182
- ["soulOfTheKeeper", Card.SOUL_KEEPER], // 93
183
- ["soulTheKeeper", Card.SOUL_KEEPER], // 93
184
- ["theKeeper", Card.SOUL_KEEPER], // 93
185
- ["soulOfKeeper", Card.SOUL_KEEPER], // 93
186
- ["soulKeeper", Card.SOUL_KEEPER], // 93
187
- ["keeper", Card.SOUL_KEEPER], // 93
188
- ["soulOfApollyon", Card.SOUL_APOLLYON], // 94
189
- ["soulApollyon", Card.SOUL_APOLLYON], // 94
190
- ["apollyon", Card.SOUL_APOLLYON], // 94
191
- ["soulOfTheForgotten", Card.SOUL_FORGOTTEN], // 95
192
- ["soulTheForgotten", Card.SOUL_FORGOTTEN], // 95
193
- ["theForgotten", Card.SOUL_FORGOTTEN], // 95
194
- ["soulOfForgotten", Card.SOUL_FORGOTTEN], // 95
195
- ["soulForgotten", Card.SOUL_FORGOTTEN], // 95
196
- ["forgotten", Card.SOUL_FORGOTTEN], // 95
197
- ["soulOfBethany", Card.SOUL_BETHANY], // 96
198
- ["soulBethany", Card.SOUL_BETHANY], // 96
199
- ["bethany", Card.SOUL_BETHANY], // 96
200
- ["soulOfJacobAndEsau", Card.SOUL_JACOB], // 97
201
- ["soulJacobAndEsau", Card.SOUL_JACOB], // 97
202
- ["jacobAndEsau", Card.SOUL_JACOB], // 97
203
- ["soulOfJacob&Esau", Card.SOUL_JACOB], // 97
204
- ["soulJacob&Esau", Card.SOUL_JACOB], // 97
205
- ["jacob&Esau", Card.SOUL_JACOB], // 97
206
- ["soulOfJacob", Card.SOUL_JACOB], // 97
207
- ["soulJacob", Card.SOUL_JACOB], // 97
208
- ["jacob", Card.SOUL_JACOB], // 97
6
+ export const CARD_MAP: ReadonlyMap<string, CardType> = new Map([
7
+ ["fool", CardType.FOOL], // 1
8
+ ["magician", CardType.MAGICIAN], // 2
9
+ ["mag", CardType.MAGICIAN], // 2 - Needed since we have "mag?"
10
+ ["highPriestess", CardType.HIGH_PRIESTESS], // 3
11
+ ["priestess", CardType.HIGH_PRIESTESS], // 3
12
+ ["priest", CardType.HIGH_PRIESTESS], // 3 - Needed since we have "priest?"
13
+ ["hp", CardType.HIGH_PRIESTESS], // 3
14
+ ["empress", CardType.EMPRESS], // 4
15
+ ["emperor", CardType.EMPEROR], // 5
16
+ ["emp", CardType.EMPEROR], // 5 - Needed since we have "hemp?"
17
+ ["hierophant", CardType.HIEROPHANT], // 6
18
+ ["hi", CardType.HIEROPHANT], // 6 - Needed since we have "hiero?"
19
+ ["lovers", CardType.LOVERS], // 7
20
+ ["chariot", CardType.CHARIOT], // 8
21
+ ["justice", CardType.JUSTICE], // 9
22
+ ["hermit", CardType.HERMIT], // 10
23
+ ["wheelOfFortune", CardType.WHEEL_OF_FORTUNE], // 11
24
+ ["wheel", CardType.WHEEL_OF_FORTUNE], // 11 - Needed since we have "wheel?"
25
+ ["fortune", CardType.WHEEL_OF_FORTUNE], // 11
26
+ ["strength", CardType.STRENGTH], // 12
27
+ ["str", CardType.STRENGTH], // 12 - Needed since we have "str?"
28
+ ["hangedMan", CardType.HANGED_MAN], // 13
29
+ ["hanged", CardType.HANGED_MAN], // 13
30
+ ["death", CardType.DEATH], // 14
31
+ ["temperance", CardType.TEMPERANCE], // 15
32
+ ["devil", CardType.DEVIL], // 16
33
+ ["tower", CardType.TOWER], // 17
34
+ ["stars", CardType.STARS], // 18
35
+ ["moon", CardType.MOON], // 19
36
+ ["sun", CardType.SUN], // 20
37
+ ["judgement", CardType.JUDGEMENT], // 21
38
+ ["judge", CardType.JUDGEMENT], // 21 - Needed since we have "judge?"
39
+ ["world", CardType.WORLD], // 22
40
+ ["2OfClubs", CardType.CLUBS_2], // 23
41
+ ["2Clubs", CardType.CLUBS_2], // 23
42
+ ["2OfDiamonds", CardType.DIAMONDS_2], // 24
43
+ ["2Diamonds", CardType.DIAMONDS_2], // 24
44
+ ["2OfSpades", CardType.SPADES_2], // 25
45
+ ["2Spades", CardType.SPADES_2], // 25
46
+ ["2OfHearts", CardType.HEARTS_2], // 26
47
+ ["2Hearts", CardType.HEARTS_2], // 26
48
+ ["aceOfClubs", CardType.ACE_OF_CLUBS], // 27
49
+ ["aceClubs", CardType.ACE_OF_CLUBS], // 27
50
+ ["aceOfDiamonds", CardType.ACE_OF_DIAMONDS], // 28
51
+ ["aceDiamonds", CardType.ACE_OF_DIAMONDS], // 28
52
+ ["aceOfSpades", CardType.ACE_OF_SPADES], // 29
53
+ ["aceSpades", CardType.ACE_OF_SPADES], // 29
54
+ ["aceOfHearts", CardType.ACE_OF_HEARTS], // 30
55
+ ["aceHearts", CardType.ACE_OF_HEARTS], // 30
56
+ ["joker", CardType.JOKER], // 31
57
+ ["hagalaz", CardType.RUNE_HAGALAZ], // 32
58
+ ["destruction", CardType.RUNE_HAGALAZ], // 32
59
+ ["jera", CardType.RUNE_JERA], // 33
60
+ ["abundance", CardType.RUNE_JERA], // 33
61
+ ["ehwaz", CardType.RUNE_EHWAZ], // 34
62
+ ["passage", CardType.RUNE_EHWAZ], // 34
63
+ ["dagaz", CardType.RUNE_DAGAZ], // 35
64
+ ["purity", CardType.RUNE_DAGAZ], // 35
65
+ ["ansuz", CardType.RUNE_ANSUZ], // 36
66
+ ["vision", CardType.RUNE_ANSUZ], // 36
67
+ ["perthro", CardType.RUNE_PERTHRO], // 37
68
+ ["change", CardType.RUNE_PERTHRO], // 37
69
+ ["berkano", CardType.RUNE_BERKANO], // 38
70
+ ["companionship", CardType.RUNE_BERKANO], // 38
71
+ ["algiz", CardType.RUNE_ALGIZ], // 39
72
+ ["resistance", CardType.RUNE_ALGIZ], // 39
73
+ ["shield", CardType.RUNE_ALGIZ], // 39
74
+ ["blank", CardType.RUNE_BLANK], // 40
75
+ ["black", CardType.RUNE_BLACK], // 41
76
+ ["chaos", CardType.CHAOS], // 42
77
+ ["credit", CardType.CREDIT], // 43
78
+ ["rules", CardType.RULES], // 44
79
+ ["againstHumanity", CardType.AGAINST_HUMANITY], // 45
80
+ ["humanity", CardType.AGAINST_HUMANITY], // 45
81
+ ["suicideKing", CardType.SUICIDE_KING], // 46
82
+ ["suicide", CardType.SUICIDE_KING], // 46
83
+ ["getOutOfJailFree", CardType.GET_OUT_OF_JAIL_FREE], // 47
84
+ ["jail", CardType.GET_OUT_OF_JAIL_FREE], // 47
85
+ ["?", CardType.QUESTION_MARK], // 48
86
+ ["diceShard", CardType.DICE_SHARD], // 49
87
+ ["shard", CardType.DICE_SHARD], // 49
88
+ ["emergencyContact", CardType.EMERGENCY_CONTACT], // 50
89
+ ["contact", CardType.EMERGENCY_CONTACT], // 50
90
+ ["holy", CardType.HOLY], // 51
91
+ ["hugeGrowth", CardType.HUGE_GROWTH], // 52
92
+ ["growth", CardType.HUGE_GROWTH], // 52
93
+ ["ancientRecall", CardType.ANCIENT_RECALL], // 53
94
+ ["recall", CardType.ANCIENT_RECALL], // 53
95
+ ["eraWalk", CardType.ERA_WALK], // 54
96
+ ["walk", CardType.ERA_WALK], // 54
97
+ ["runeShard", CardType.RUNE_SHARD], // 55
98
+ ["shard", CardType.RUNE_SHARD], // 55
99
+ ["fool?", CardType.REVERSE_FOOL], // 56
100
+ ["magician?", CardType.REVERSE_MAGICIAN], // 57
101
+ ["magi?", CardType.REVERSE_MAGICIAN], // 57
102
+ ["mag?", CardType.REVERSE_MAGICIAN], // 57
103
+ ["highPriestess?", CardType.REVERSE_HIGH_PRIESTESS], // 58
104
+ ["high?", CardType.REVERSE_HIGH_PRIESTESS], // 58
105
+ ["hi?", CardType.REVERSE_HIGH_PRIESTESS], // 58
106
+ ["priestess?", CardType.REVERSE_HIGH_PRIESTESS], // 58
107
+ ["priest?", CardType.REVERSE_HIGH_PRIESTESS], // 58
108
+ ["hp?", CardType.REVERSE_HIGH_PRIESTESS], // 58
109
+ ["empress?", CardType.REVERSE_EMPRESS], // 59
110
+ ["emperor?", CardType.REVERSE_EMPEROR], // 60
111
+ ["emp?", CardType.REVERSE_EMPEROR], // 60
112
+ ["hierophant?", CardType.REVERSE_HIEROPHANT], // 61
113
+ ["hiero?", CardType.REVERSE_HIEROPHANT], // 61
114
+ ["lovers?", CardType.REVERSE_LOVERS], // 62
115
+ ["chariot?", CardType.REVERSE_CHARIOT], // 63
116
+ ["justice?", CardType.REVERSE_JUSTICE], // 64
117
+ ["hermit?", CardType.REVERSE_HERMIT], // 65
118
+ ["wheelOfFortune?", CardType.REVERSE_WHEEL_OF_FORTUNE], // 66
119
+ ["wheel?", CardType.REVERSE_WHEEL_OF_FORTUNE], // 66
120
+ ["fortune?", CardType.REVERSE_WHEEL_OF_FORTUNE], // 66
121
+ ["strength?", CardType.REVERSE_STRENGTH], // 67
122
+ ["str?", CardType.REVERSE_STRENGTH], // 67
123
+ ["hangedMan?", CardType.REVERSE_HANGED_MAN], // 68
124
+ ["hanged?", CardType.REVERSE_HANGED_MAN], // 68
125
+ ["death?", CardType.REVERSE_DEATH], // 6
126
+ ["temperance?", CardType.REVERSE_TEMPERANCE], // 70
127
+ ["devil?", CardType.REVERSE_DEVIL], // 71
128
+ ["tower?", CardType.REVERSE_TOWER], // 72
129
+ ["stars?", CardType.REVERSE_STARS], // 73
130
+ ["moon?", CardType.REVERSE_MOON], // 74
131
+ ["sun?", CardType.REVERSE_SUN], // 75
132
+ ["judgement?", CardType.REVERSE_JUDGEMENT], // 76
133
+ ["judge?", CardType.REVERSE_JUDGEMENT], // 76
134
+ ["world?", CardType.REVERSE_WORLD], // 77
135
+ ["crackedKey", CardType.CRACKED_KEY], // 78
136
+ ["key", CardType.CRACKED_KEY], // 78
137
+ ["queenOfHearts", CardType.QUEEN_OF_HEARTS], // 79
138
+ ["queenHearts", CardType.QUEEN_OF_HEARTS], // 79
139
+ ["wildcard", CardType.WILD], // 80
140
+ ["soulOfIsaac", CardType.SOUL_ISAAC], // 81
141
+ ["soulIsaac", CardType.SOUL_ISAAC], // 81
142
+ ["isaac", CardType.SOUL_ISAAC], // 81
143
+ ["soulOfMagdalene", CardType.SOUL_MAGDALENE], // 82
144
+ ["soulMagdalene", CardType.SOUL_MAGDALENE], // 82
145
+ ["magdalene", CardType.SOUL_MAGDALENE], // 82
146
+ ["soulOfCain", CardType.SOUL_CAIN], // 83
147
+ ["soulCain", CardType.SOUL_CAIN], // 83
148
+ ["cain", CardType.SOUL_CAIN], // 83
149
+ ["soulOfJudas", CardType.SOUL_JUDAS], // 84
150
+ ["soulJudas", CardType.SOUL_JUDAS], // 84
151
+ ["judas", CardType.SOUL_JUDAS], // 84
152
+ ["soulOf???", CardType.SOUL_BLUE_BABY], // 85
153
+ ["soul???", CardType.SOUL_BLUE_BABY], // 85
154
+ ["???", CardType.SOUL_BLUE_BABY], // 85
155
+ ["soulOfBlueBaby", CardType.SOUL_BLUE_BABY], // 85
156
+ ["soulBlueBaby", CardType.SOUL_BLUE_BABY], // 85
157
+ ["blueBaby", CardType.SOUL_BLUE_BABY], // 85
158
+ ["soulOfEve", CardType.SOUL_EVE], // 86
159
+ ["soulEve", CardType.SOUL_EVE], // 86
160
+ ["eve", CardType.SOUL_EVE], // 86
161
+ ["soulOfSamson", CardType.SOUL_SAMSON], // 87
162
+ ["soulSamson", CardType.SOUL_SAMSON], // 87
163
+ ["samson", CardType.SOUL_SAMSON], // 87
164
+ ["soulOfAzazel", CardType.SOUL_AZAZEL], // 88
165
+ ["soulAzazel", CardType.SOUL_AZAZEL], // 88
166
+ ["azazel", CardType.SOUL_AZAZEL], // 88
167
+ ["soulOfLazarus", CardType.SOUL_LAZARUS], // 89
168
+ ["soulLazarus", CardType.SOUL_LAZARUS], // 89
169
+ ["lazarus", CardType.SOUL_LAZARUS], // 89
170
+ ["soulOfEden", CardType.SOUL_EDEN], // 90
171
+ ["soulEden", CardType.SOUL_EDEN], // 90
172
+ ["eden", CardType.SOUL_EDEN], // 90
173
+ ["soulOfTheLost", CardType.SOUL_LOST], // 91
174
+ ["soulTheLost", CardType.SOUL_LOST], // 91
175
+ ["theLost", CardType.SOUL_LOST], // 91
176
+ ["soulOfLost", CardType.SOUL_LOST], // 91
177
+ ["soulLost", CardType.SOUL_LOST], // 91
178
+ ["lost", CardType.SOUL_LOST], // 91
179
+ ["soulOfLilith", CardType.SOUL_LILITH], // 92
180
+ ["soulLilith", CardType.SOUL_LILITH], // 92
181
+ ["lilith", CardType.SOUL_LILITH], // 92
182
+ ["soulOfTheKeeper", CardType.SOUL_KEEPER], // 93
183
+ ["soulTheKeeper", CardType.SOUL_KEEPER], // 93
184
+ ["theKeeper", CardType.SOUL_KEEPER], // 93
185
+ ["soulOfKeeper", CardType.SOUL_KEEPER], // 93
186
+ ["soulKeeper", CardType.SOUL_KEEPER], // 93
187
+ ["keeper", CardType.SOUL_KEEPER], // 93
188
+ ["soulOfApollyon", CardType.SOUL_APOLLYON], // 94
189
+ ["soulApollyon", CardType.SOUL_APOLLYON], // 94
190
+ ["apollyon", CardType.SOUL_APOLLYON], // 94
191
+ ["soulOfTheForgotten", CardType.SOUL_FORGOTTEN], // 95
192
+ ["soulTheForgotten", CardType.SOUL_FORGOTTEN], // 95
193
+ ["theForgotten", CardType.SOUL_FORGOTTEN], // 95
194
+ ["soulOfForgotten", CardType.SOUL_FORGOTTEN], // 95
195
+ ["soulForgotten", CardType.SOUL_FORGOTTEN], // 95
196
+ ["forgotten", CardType.SOUL_FORGOTTEN], // 95
197
+ ["soulOfBethany", CardType.SOUL_BETHANY], // 96
198
+ ["soulBethany", CardType.SOUL_BETHANY], // 96
199
+ ["bethany", CardType.SOUL_BETHANY], // 96
200
+ ["soulOfJacobAndEsau", CardType.SOUL_JACOB], // 97
201
+ ["soulJacobAndEsau", CardType.SOUL_JACOB], // 97
202
+ ["jacobAndEsau", CardType.SOUL_JACOB], // 97
203
+ ["soulOfJacob&Esau", CardType.SOUL_JACOB], // 97
204
+ ["soulJacob&Esau", CardType.SOUL_JACOB], // 97
205
+ ["jacob&Esau", CardType.SOUL_JACOB], // 97
206
+ ["soulOfJacob", CardType.SOUL_JACOB], // 97
207
+ ["soulJacob", CardType.SOUL_JACOB], // 97
208
+ ["jacob", CardType.SOUL_JACOB], // 97
209
209
  ]);