isaacscript-common 16.1.7 → 17.0.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 (36) hide show
  1. package/dist/index.d.ts +191 -49
  2. package/dist/isaacscript-common.lua +517 -508
  3. package/dist/src/classes/ModUpgradedBase.d.ts +3 -1
  4. package/dist/src/classes/ModUpgradedBase.d.ts.map +1 -1
  5. package/dist/src/classes/ModUpgradedBase.lua +16 -8
  6. package/dist/src/classes/features/other/ModdedElementSets.d.ts +172 -5
  7. package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
  8. package/dist/src/classes/features/other/ModdedElementSets.lua +161 -5
  9. package/dist/src/classes/features/other/Pause.d.ts +1 -0
  10. package/dist/src/classes/features/other/Pause.d.ts.map +1 -1
  11. package/dist/src/classes/features/other/Pause.lua +5 -1
  12. package/dist/src/core/constants.d.ts +3 -1
  13. package/dist/src/core/constants.d.ts.map +1 -1
  14. package/dist/src/core/constants.lua +6 -0
  15. package/dist/src/core/upgradeMod.d.ts.map +1 -1
  16. package/dist/src/core/upgradeMod.lua +7 -0
  17. package/dist/src/functions/cards.d.ts +7 -34
  18. package/dist/src/functions/cards.d.ts.map +1 -1
  19. package/dist/src/functions/cards.lua +20 -119
  20. package/dist/src/functions/globals.d.ts.map +1 -1
  21. package/dist/src/functions/globals.lua +0 -1
  22. package/dist/src/functions/positionVelocity.d.ts.map +1 -1
  23. package/dist/src/functions/positionVelocity.lua +5 -5
  24. package/package.json +2 -2
  25. package/src/classes/ModUpgradedBase.ts +24 -9
  26. package/src/classes/features/other/ModdedElementSets.ts +346 -5
  27. package/src/classes/features/other/Pause.ts +5 -0
  28. package/src/core/constants.ts +9 -0
  29. package/src/core/upgradeMod.ts +10 -0
  30. package/src/functions/cards.ts +20 -139
  31. package/src/functions/globals.ts +0 -1
  32. package/src/functions/positionVelocity.ts +1 -7
  33. package/dist/src/objects/cardTypeToItemConfigCardType.d.ts +0 -6
  34. package/dist/src/objects/cardTypeToItemConfigCardType.d.ts.map +0 -1
  35. package/dist/src/objects/cardTypeToItemConfigCardType.lua +0 -106
  36. package/src/objects/cardTypeToItemConfigCardType.ts +0 -106
@@ -1,5 +1,6 @@
1
1
  import { CardType, ItemConfigCardType } from "isaac-typescript-definitions";
2
2
  import { itemConfig } from "../core/cachedClasses";
3
+ import { ITEM_CONFIG_CARD_TYPES_FOR_CARDS } from "../core/constants";
3
4
  import {
4
5
  FIRST_CARD_TYPE,
5
6
  LAST_VANILLA_CARD_TYPE,
@@ -9,61 +10,8 @@ import {
9
10
  DEFAULT_CARD_DESCRIPTION,
10
11
  } from "../objects/cardDescriptions";
11
12
  import { CARD_NAMES, DEFAULT_CARD_NAME } from "../objects/cardNames";
12
- import {
13
- CARD_TYPE_TO_ITEM_CONFIG_CARD_TYPE,
14
- DEFAULT_CARD_TYPE,
15
- } from "../objects/cardTypeToItemConfigCardType";
16
- import { getEnumValues } from "./enums";
17
- import { getRandomSeed } from "./rng";
18
- import { addSetsToSet, getRandomSetElement } from "./set";
19
13
  import { iRange } from "./utils";
20
14
 
21
- const ITEM_CONFIG_CARD_TYPE_TO_CARD_TYPE_MAP = new Map<
22
- ItemConfigCardType,
23
- Set<CardType>
24
- >();
25
-
26
- /**
27
- * Contains all of the entries in the `CardType` enum with the following types:
28
- * - ItemConfigCardType.TAROT
29
- * - ItemConfigCardType.SUIT
30
- * - ItemConfigCardType.SPECIAL
31
- * - ItemConfigCardType.TAROT_REVERSE
32
- */
33
- const CARD_SET = new Set<CardType>();
34
-
35
- function lazyInitCardMapsSets() {
36
- // The card type to cards map should be valid for every card type, so we initialize it with empty
37
- // sets.
38
- for (const cardType of getEnumValues(ItemConfigCardType)) {
39
- ITEM_CONFIG_CARD_TYPE_TO_CARD_TYPE_MAP.set(cardType, new Set<CardType>());
40
- }
41
-
42
- for (const card of getVanillaCardTypes()) {
43
- const itemConfigCardType = getItemConfigCardType(card);
44
- const cardTypeSet =
45
- ITEM_CONFIG_CARD_TYPE_TO_CARD_TYPE_MAP.get(itemConfigCardType);
46
- if (cardTypeSet === undefined) {
47
- error(
48
- `Failed to get the card set for item config card type: ${itemConfigCardType}`,
49
- );
50
- }
51
- cardTypeSet.add(card);
52
- }
53
-
54
- // i.e. everything except for:
55
- // - ItemConfigCardType.RUNE
56
- // - ItemConfigCardType.SPECIAL_OBJECT
57
- // - ItemConfigCardType.MODDED
58
- const cards = getCardTypesOfType(
59
- ItemConfigCardType.TAROT,
60
- ItemConfigCardType.SUIT,
61
- ItemConfigCardType.SPECIAL,
62
- ItemConfigCardType.TAROT_REVERSE,
63
- );
64
- addSetsToSet(CARD_SET, cards);
65
- }
66
-
67
15
  /**
68
16
  * Helper function to get a card description from a Card enum value.
69
17
  *
@@ -111,100 +59,28 @@ export function getCardName(cardType: CardType): string {
111
59
  }
112
60
 
113
61
  /**
114
- * Helper function to get a set of card types matching the `ItemConfigCardType`.
62
+ * Helper function to get the item config card type of a particular card, rune, or object. For
63
+ * example, the item config card type of `CardType.FOOL` is equal to `ItemConfigCardType.TAROT`.
115
64
  *
116
- * This function is variadic, meaning that you can you can specify N card types to get a set
117
- * containing cards that match any of the specified types.
65
+ * Returns undefined if the provided card type was not valid.
118
66
  */
119
- export function getCardTypesOfType(
120
- ...itemConfigCardTypes: ItemConfigCardType[]
121
- ): Set<CardType> {
122
- if (ITEM_CONFIG_CARD_TYPE_TO_CARD_TYPE_MAP.size === 0) {
123
- lazyInitCardMapsSets();
124
- }
125
-
126
- const matchingCardTypes = new Set<CardType>();
127
- for (const itemConfigCardType of itemConfigCardTypes) {
128
- const cardTypeSet =
129
- ITEM_CONFIG_CARD_TYPE_TO_CARD_TYPE_MAP.get(itemConfigCardType);
130
- if (cardTypeSet === undefined) {
131
- error(
132
- `Failed to get the card type set for item config type: ${itemConfigCardType}`,
133
- );
134
- }
135
-
136
- for (const cardType of cardTypeSet.values()) {
137
- matchingCardTypes.add(cardType);
138
- }
67
+ export function getItemConfigCardType(
68
+ cardType: CardType,
69
+ ): ItemConfigCardType | undefined {
70
+ const itemConfigCard = itemConfig.GetCard(cardType);
71
+ if (itemConfigCard === undefined) {
72
+ return undefined;
139
73
  }
140
74
 
141
- return matchingCardTypes;
142
- }
143
-
144
- export function getItemConfigCardType(cardType: CardType): ItemConfigCardType {
145
- const itemConfigCardType = CARD_TYPE_TO_ITEM_CONFIG_CARD_TYPE[cardType];
146
-
147
- // Handle modded cards.
148
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
149
- return itemConfigCardType === undefined
150
- ? DEFAULT_CARD_TYPE
151
- : itemConfigCardType;
152
- }
153
-
154
- /**
155
- * Has an equal chance of returning any card (e.g. Fool, Reverse Fool, Wild Card, etc.).
156
- *
157
- * This will not return:
158
- * - any runes
159
- * - any objects like Dice Shard
160
- * - any modded cards (since there is not a way to distinguish between modded cards and modded
161
- * runes/objects)
162
- *
163
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
164
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
165
- * @param exceptions Optional. An array of cards to not select.
166
- */
167
- export function getRandomCard(
168
- seedOrRNG: Seed | RNG = getRandomSeed(),
169
- exceptions: CardType[] = [],
170
- ): CardType {
171
- return getRandomSetElement(CARD_SET, seedOrRNG, exceptions);
75
+ return itemConfigCard.CardType;
172
76
  }
173
77
 
174
78
  /**
175
- * @param itemConfigCardType The item config card type that represents the pool of cards to select
176
- * from.
177
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
178
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
179
- * @param exceptions Optional. An array of cards to not select.
180
- */
181
- export function getRandomCardTypeOfType(
182
- itemConfigCardType: ItemConfigCardType,
183
- seedOrRNG: Seed | RNG = getRandomSeed(),
184
- exceptions: CardType[] = [],
185
- ): CardType {
186
- const cardTypeSet = getCardTypesOfType(itemConfigCardType);
187
- return getRandomSetElement(cardTypeSet, seedOrRNG, exceptions);
188
- }
189
-
190
- /**
191
- * Has an equal chance of returning any rune (e.g. Rune of Hagalaz, Blank Rune, Black Rune, Soul of
192
- * Isaac, etc.). This will never return a Rune Shard.
79
+ * Helper function to get an array with every valid vanilla card sub-type.
193
80
  *
194
- * @param seedOrRNG Optional. The `Seed` or `RNG` object to use. If an `RNG` object is provided, the
195
- * `RNG.Next` method will be called. Default is `getRandomSeed()`.
196
- * @param exceptions Optional. An array of runes to not select.
81
+ * Note that unlike collectibles and trinkets, there are no gaps in the card types, so this is a
82
+ * simple range from the first card type to the last vanilla card type.
197
83
  */
198
- export function getRandomRune(
199
- seedOrRNG: Seed | RNG = getRandomSeed(),
200
- exceptions: CardType[] = [],
201
- ): CardType {
202
- const runesSet = getCardTypesOfType(ItemConfigCardType.RUNE);
203
- runesSet.delete(CardType.RUNE_SHARD);
204
- return getRandomSetElement(runesSet, seedOrRNG, exceptions);
205
- }
206
-
207
- /** Helper function to get an array with every valid vanilla card sub-type. */
208
84
  export function getVanillaCardTypes(): CardType[] {
209
85
  return iRange(FIRST_CARD_TYPE, LAST_VANILLA_CARD_TYPE);
210
86
  }
@@ -217,7 +93,12 @@ export function getVanillaCardTypes(): CardType[] {
217
93
  * - CardType.TAROT_REVERSE
218
94
  */
219
95
  export function isCard(cardType: CardType): boolean {
220
- return CARD_SET.has(cardType);
96
+ const itemConfigCardType = getItemConfigCardType(cardType);
97
+ if (itemConfigCardType === undefined) {
98
+ return false;
99
+ }
100
+
101
+ return ITEM_CONFIG_CARD_TYPES_FOR_CARDS.has(itemConfigCardType);
221
102
  }
222
103
 
223
104
  /** Returns whether or not the given card type matches the specified item config card type. */
@@ -125,7 +125,6 @@ const DEFAULT_GLOBALS: ReadonlySet<string> = new Set([
125
125
  "SackSubType",
126
126
  "SeedEffect",
127
127
  "Seeds",
128
- "ShockwaveParams",
129
128
  "SkinColor",
130
129
  "SortingLayer",
131
130
  "SoundEffect",
@@ -72,13 +72,7 @@ export function findFreePosition(
72
72
  avoidActiveEntities,
73
73
  );
74
74
 
75
- const closePlayer = getPlayerCloserThan(
76
- position,
77
- // If we use a multiplier of 1.0, certain enemies might spawn directly next to a player, which
78
- // is not technically unavoidable damage, but still a little bit unfair. Thus, we use a
79
- // multiplier of 1.5.
80
- DISTANCE_OF_GRID_TILE * 1.5,
81
- );
75
+ const closePlayer = getPlayerCloserThan(position, DISTANCE_OF_GRID_TILE);
82
76
  if (closePlayer !== undefined) {
83
77
  continue;
84
78
  }
@@ -1,6 +0,0 @@
1
- import { CardType, ItemConfigCardType } from "isaac-typescript-definitions";
2
- export declare const DEFAULT_CARD_TYPE = ItemConfigCardType.MODDED;
3
- export declare const CARD_TYPE_TO_ITEM_CONFIG_CARD_TYPE: {
4
- readonly [key in CardType]: ItemConfigCardType;
5
- };
6
- //# sourceMappingURL=cardTypeToItemConfigCardType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cardTypeToItemConfigCardType.d.ts","sourceRoot":"","sources":["../../../src/objects/cardTypeToItemConfigCardType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,eAAO,MAAM,iBAAiB,4BAA4B,CAAC;AAE3D,eAAO,MAAM,kCAAkC,EAAE;IAC/C,QAAQ,EAAE,GAAG,IAAI,QAAQ,GAAG,kBAAkB;CAoGtC,CAAC"}
@@ -1,106 +0,0 @@
1
- local ____exports = {}
2
- local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
3
- local CardType = ____isaac_2Dtypescript_2Ddefinitions.CardType
4
- local ItemConfigCardType = ____isaac_2Dtypescript_2Ddefinitions.ItemConfigCardType
5
- ____exports.DEFAULT_CARD_TYPE = ItemConfigCardType.MODDED
6
- ____exports.CARD_TYPE_TO_ITEM_CONFIG_CARD_TYPE = {
7
- [CardType.NULL] = ItemConfigCardType.NULL,
8
- [CardType.FOOL] = ItemConfigCardType.TAROT,
9
- [CardType.MAGICIAN] = ItemConfigCardType.TAROT,
10
- [CardType.HIGH_PRIESTESS] = ItemConfigCardType.TAROT,
11
- [CardType.EMPRESS] = ItemConfigCardType.TAROT,
12
- [CardType.EMPEROR] = ItemConfigCardType.TAROT,
13
- [CardType.HIEROPHANT] = ItemConfigCardType.TAROT,
14
- [CardType.LOVERS] = ItemConfigCardType.TAROT,
15
- [CardType.CHARIOT] = ItemConfigCardType.TAROT,
16
- [CardType.JUSTICE] = ItemConfigCardType.TAROT,
17
- [CardType.HERMIT] = ItemConfigCardType.TAROT,
18
- [CardType.WHEEL_OF_FORTUNE] = ItemConfigCardType.TAROT,
19
- [CardType.STRENGTH] = ItemConfigCardType.TAROT,
20
- [CardType.HANGED_MAN] = ItemConfigCardType.TAROT,
21
- [CardType.DEATH] = ItemConfigCardType.TAROT,
22
- [CardType.TEMPERANCE] = ItemConfigCardType.TAROT,
23
- [CardType.DEVIL] = ItemConfigCardType.TAROT,
24
- [CardType.TOWER] = ItemConfigCardType.TAROT,
25
- [CardType.STARS] = ItemConfigCardType.TAROT,
26
- [CardType.MOON] = ItemConfigCardType.TAROT,
27
- [CardType.SUN] = ItemConfigCardType.TAROT,
28
- [CardType.JUDGEMENT] = ItemConfigCardType.TAROT,
29
- [CardType.WORLD] = ItemConfigCardType.TAROT,
30
- [CardType.CLUBS_2] = ItemConfigCardType.SUIT,
31
- [CardType.DIAMONDS_2] = ItemConfigCardType.SUIT,
32
- [CardType.SPADES_2] = ItemConfigCardType.SUIT,
33
- [CardType.HEARTS_2] = ItemConfigCardType.SUIT,
34
- [CardType.ACE_OF_CLUBS] = ItemConfigCardType.SUIT,
35
- [CardType.ACE_OF_DIAMONDS] = ItemConfigCardType.SUIT,
36
- [CardType.ACE_OF_SPADES] = ItemConfigCardType.SUIT,
37
- [CardType.ACE_OF_HEARTS] = ItemConfigCardType.SUIT,
38
- [CardType.JOKER] = ItemConfigCardType.SUIT,
39
- [CardType.RUNE_HAGALAZ] = ItemConfigCardType.RUNE,
40
- [CardType.RUNE_JERA] = ItemConfigCardType.RUNE,
41
- [CardType.RUNE_EHWAZ] = ItemConfigCardType.RUNE,
42
- [CardType.RUNE_DAGAZ] = ItemConfigCardType.RUNE,
43
- [CardType.RUNE_ANSUZ] = ItemConfigCardType.RUNE,
44
- [CardType.RUNE_PERTHRO] = ItemConfigCardType.RUNE,
45
- [CardType.RUNE_BERKANO] = ItemConfigCardType.RUNE,
46
- [CardType.RUNE_ALGIZ] = ItemConfigCardType.RUNE,
47
- [CardType.RUNE_BLANK] = ItemConfigCardType.RUNE,
48
- [CardType.RUNE_BLACK] = ItemConfigCardType.RUNE,
49
- [CardType.CHAOS] = ItemConfigCardType.SPECIAL,
50
- [CardType.CREDIT] = ItemConfigCardType.SPECIAL,
51
- [CardType.RULES] = ItemConfigCardType.SPECIAL,
52
- [CardType.AGAINST_HUMANITY] = ItemConfigCardType.SPECIAL,
53
- [CardType.SUICIDE_KING] = ItemConfigCardType.SPECIAL,
54
- [CardType.GET_OUT_OF_JAIL_FREE] = ItemConfigCardType.SPECIAL,
55
- [CardType.QUESTION_MARK] = ItemConfigCardType.SPECIAL,
56
- [CardType.DICE_SHARD] = ItemConfigCardType.SPECIAL_OBJECT,
57
- [CardType.EMERGENCY_CONTACT] = ItemConfigCardType.SPECIAL_OBJECT,
58
- [CardType.HOLY] = ItemConfigCardType.SPECIAL,
59
- [CardType.HUGE_GROWTH] = ItemConfigCardType.SPECIAL,
60
- [CardType.ANCIENT_RECALL] = ItemConfigCardType.SPECIAL,
61
- [CardType.ERA_WALK] = ItemConfigCardType.SPECIAL,
62
- [CardType.RUNE_SHARD] = ItemConfigCardType.RUNE,
63
- [CardType.REVERSE_FOOL] = ItemConfigCardType.TAROT_REVERSE,
64
- [CardType.REVERSE_MAGICIAN] = ItemConfigCardType.TAROT_REVERSE,
65
- [CardType.REVERSE_HIGH_PRIESTESS] = ItemConfigCardType.TAROT_REVERSE,
66
- [CardType.REVERSE_EMPRESS] = ItemConfigCardType.TAROT_REVERSE,
67
- [CardType.REVERSE_EMPEROR] = ItemConfigCardType.TAROT_REVERSE,
68
- [CardType.REVERSE_HIEROPHANT] = ItemConfigCardType.TAROT_REVERSE,
69
- [CardType.REVERSE_LOVERS] = ItemConfigCardType.TAROT_REVERSE,
70
- [CardType.REVERSE_CHARIOT] = ItemConfigCardType.TAROT_REVERSE,
71
- [CardType.REVERSE_JUSTICE] = ItemConfigCardType.TAROT_REVERSE,
72
- [CardType.REVERSE_HERMIT] = ItemConfigCardType.TAROT_REVERSE,
73
- [CardType.REVERSE_WHEEL_OF_FORTUNE] = ItemConfigCardType.TAROT_REVERSE,
74
- [CardType.REVERSE_STRENGTH] = ItemConfigCardType.TAROT_REVERSE,
75
- [CardType.REVERSE_HANGED_MAN] = ItemConfigCardType.TAROT_REVERSE,
76
- [CardType.REVERSE_DEATH] = ItemConfigCardType.TAROT_REVERSE,
77
- [CardType.REVERSE_TEMPERANCE] = ItemConfigCardType.TAROT_REVERSE,
78
- [CardType.REVERSE_DEVIL] = ItemConfigCardType.TAROT_REVERSE,
79
- [CardType.REVERSE_TOWER] = ItemConfigCardType.TAROT_REVERSE,
80
- [CardType.REVERSE_STARS] = ItemConfigCardType.TAROT_REVERSE,
81
- [CardType.REVERSE_MOON] = ItemConfigCardType.TAROT_REVERSE,
82
- [CardType.REVERSE_SUN] = ItemConfigCardType.TAROT_REVERSE,
83
- [CardType.REVERSE_JUDGEMENT] = ItemConfigCardType.TAROT_REVERSE,
84
- [CardType.REVERSE_WORLD] = ItemConfigCardType.TAROT_REVERSE,
85
- [CardType.CRACKED_KEY] = ItemConfigCardType.SPECIAL_OBJECT,
86
- [CardType.QUEEN_OF_HEARTS] = ItemConfigCardType.SUIT,
87
- [CardType.WILD] = ItemConfigCardType.SPECIAL,
88
- [CardType.SOUL_ISAAC] = ItemConfigCardType.RUNE,
89
- [CardType.SOUL_MAGDALENE] = ItemConfigCardType.RUNE,
90
- [CardType.SOUL_CAIN] = ItemConfigCardType.RUNE,
91
- [CardType.SOUL_JUDAS] = ItemConfigCardType.RUNE,
92
- [CardType.SOUL_BLUE_BABY] = ItemConfigCardType.RUNE,
93
- [CardType.SOUL_EVE] = ItemConfigCardType.RUNE,
94
- [CardType.SOUL_SAMSON] = ItemConfigCardType.RUNE,
95
- [CardType.SOUL_AZAZEL] = ItemConfigCardType.RUNE,
96
- [CardType.SOUL_LAZARUS] = ItemConfigCardType.RUNE,
97
- [CardType.SOUL_EDEN] = ItemConfigCardType.RUNE,
98
- [CardType.SOUL_LOST] = ItemConfigCardType.RUNE,
99
- [CardType.SOUL_LILITH] = ItemConfigCardType.RUNE,
100
- [CardType.SOUL_KEEPER] = ItemConfigCardType.RUNE,
101
- [CardType.SOUL_APOLLYON] = ItemConfigCardType.RUNE,
102
- [CardType.SOUL_FORGOTTEN] = ItemConfigCardType.RUNE,
103
- [CardType.SOUL_BETHANY] = ItemConfigCardType.RUNE,
104
- [CardType.SOUL_JACOB] = ItemConfigCardType.RUNE
105
- }
106
- return ____exports
@@ -1,106 +0,0 @@
1
- import { CardType, ItemConfigCardType } from "isaac-typescript-definitions";
2
-
3
- export const DEFAULT_CARD_TYPE = ItemConfigCardType.MODDED;
4
-
5
- export const CARD_TYPE_TO_ITEM_CONFIG_CARD_TYPE: {
6
- readonly [key in CardType]: ItemConfigCardType;
7
- } = {
8
- [CardType.NULL]: ItemConfigCardType.NULL, // 0
9
- [CardType.FOOL]: ItemConfigCardType.TAROT, // 1
10
- [CardType.MAGICIAN]: ItemConfigCardType.TAROT, // 2
11
- [CardType.HIGH_PRIESTESS]: ItemConfigCardType.TAROT, // 3
12
- [CardType.EMPRESS]: ItemConfigCardType.TAROT, // 4
13
- [CardType.EMPEROR]: ItemConfigCardType.TAROT, // 5
14
- [CardType.HIEROPHANT]: ItemConfigCardType.TAROT, // 6
15
- [CardType.LOVERS]: ItemConfigCardType.TAROT, // 7
16
- [CardType.CHARIOT]: ItemConfigCardType.TAROT, // 8
17
- [CardType.JUSTICE]: ItemConfigCardType.TAROT, // 9
18
- [CardType.HERMIT]: ItemConfigCardType.TAROT, // 10
19
- [CardType.WHEEL_OF_FORTUNE]: ItemConfigCardType.TAROT, // 11
20
- [CardType.STRENGTH]: ItemConfigCardType.TAROT, // 12
21
- [CardType.HANGED_MAN]: ItemConfigCardType.TAROT, // 13
22
- [CardType.DEATH]: ItemConfigCardType.TAROT, // 14
23
- [CardType.TEMPERANCE]: ItemConfigCardType.TAROT, // 15
24
- [CardType.DEVIL]: ItemConfigCardType.TAROT, // 16
25
- [CardType.TOWER]: ItemConfigCardType.TAROT, // 17
26
- [CardType.STARS]: ItemConfigCardType.TAROT, // 18
27
- [CardType.MOON]: ItemConfigCardType.TAROT, // 19
28
- [CardType.SUN]: ItemConfigCardType.TAROT, // 20
29
- [CardType.JUDGEMENT]: ItemConfigCardType.TAROT, // 21
30
- [CardType.WORLD]: ItemConfigCardType.TAROT, // 22
31
- [CardType.CLUBS_2]: ItemConfigCardType.SUIT, // 23
32
- [CardType.DIAMONDS_2]: ItemConfigCardType.SUIT, // 24
33
- [CardType.SPADES_2]: ItemConfigCardType.SUIT, // 25
34
- [CardType.HEARTS_2]: ItemConfigCardType.SUIT, // 26
35
- [CardType.ACE_OF_CLUBS]: ItemConfigCardType.SUIT, // 27
36
- [CardType.ACE_OF_DIAMONDS]: ItemConfigCardType.SUIT, // 28
37
- [CardType.ACE_OF_SPADES]: ItemConfigCardType.SUIT, // 29
38
- [CardType.ACE_OF_HEARTS]: ItemConfigCardType.SUIT, // 30
39
- [CardType.JOKER]: ItemConfigCardType.SUIT, // 31
40
- [CardType.RUNE_HAGALAZ]: ItemConfigCardType.RUNE, // 32
41
- [CardType.RUNE_JERA]: ItemConfigCardType.RUNE, // 33
42
- [CardType.RUNE_EHWAZ]: ItemConfigCardType.RUNE, // 34
43
- [CardType.RUNE_DAGAZ]: ItemConfigCardType.RUNE, // 35
44
- [CardType.RUNE_ANSUZ]: ItemConfigCardType.RUNE, // 36
45
- [CardType.RUNE_PERTHRO]: ItemConfigCardType.RUNE, // 37
46
- [CardType.RUNE_BERKANO]: ItemConfigCardType.RUNE, // 38
47
- [CardType.RUNE_ALGIZ]: ItemConfigCardType.RUNE, // 39
48
- [CardType.RUNE_BLANK]: ItemConfigCardType.RUNE, // 40
49
- [CardType.RUNE_BLACK]: ItemConfigCardType.RUNE, // 41
50
- [CardType.CHAOS]: ItemConfigCardType.SPECIAL, // 42
51
- [CardType.CREDIT]: ItemConfigCardType.SPECIAL, // 43
52
- [CardType.RULES]: ItemConfigCardType.SPECIAL, // 44
53
- [CardType.AGAINST_HUMANITY]: ItemConfigCardType.SPECIAL, // 45
54
- [CardType.SUICIDE_KING]: ItemConfigCardType.SPECIAL, // 46
55
- [CardType.GET_OUT_OF_JAIL_FREE]: ItemConfigCardType.SPECIAL, // 47
56
- [CardType.QUESTION_MARK]: ItemConfigCardType.SPECIAL, // 48
57
- [CardType.DICE_SHARD]: ItemConfigCardType.SPECIAL_OBJECT, // 49
58
- [CardType.EMERGENCY_CONTACT]: ItemConfigCardType.SPECIAL_OBJECT, // 50
59
- [CardType.HOLY]: ItemConfigCardType.SPECIAL, // 51
60
- [CardType.HUGE_GROWTH]: ItemConfigCardType.SPECIAL, // 52
61
- [CardType.ANCIENT_RECALL]: ItemConfigCardType.SPECIAL, // 53
62
- [CardType.ERA_WALK]: ItemConfigCardType.SPECIAL, // 54
63
- [CardType.RUNE_SHARD]: ItemConfigCardType.RUNE, // 55
64
- [CardType.REVERSE_FOOL]: ItemConfigCardType.TAROT_REVERSE, // 56
65
- [CardType.REVERSE_MAGICIAN]: ItemConfigCardType.TAROT_REVERSE, // 57
66
- [CardType.REVERSE_HIGH_PRIESTESS]: ItemConfigCardType.TAROT_REVERSE, // 58
67
- [CardType.REVERSE_EMPRESS]: ItemConfigCardType.TAROT_REVERSE, // 59
68
- [CardType.REVERSE_EMPEROR]: ItemConfigCardType.TAROT_REVERSE, // 60
69
- [CardType.REVERSE_HIEROPHANT]: ItemConfigCardType.TAROT_REVERSE, // 61
70
- [CardType.REVERSE_LOVERS]: ItemConfigCardType.TAROT_REVERSE, // 62
71
- [CardType.REVERSE_CHARIOT]: ItemConfigCardType.TAROT_REVERSE, // 63
72
- [CardType.REVERSE_JUSTICE]: ItemConfigCardType.TAROT_REVERSE, // 64
73
- [CardType.REVERSE_HERMIT]: ItemConfigCardType.TAROT_REVERSE, // 65
74
- [CardType.REVERSE_WHEEL_OF_FORTUNE]: ItemConfigCardType.TAROT_REVERSE, // 66
75
- [CardType.REVERSE_STRENGTH]: ItemConfigCardType.TAROT_REVERSE, // 67
76
- [CardType.REVERSE_HANGED_MAN]: ItemConfigCardType.TAROT_REVERSE, // 68
77
- [CardType.REVERSE_DEATH]: ItemConfigCardType.TAROT_REVERSE, // 69
78
- [CardType.REVERSE_TEMPERANCE]: ItemConfigCardType.TAROT_REVERSE, // 70
79
- [CardType.REVERSE_DEVIL]: ItemConfigCardType.TAROT_REVERSE, // 71
80
- [CardType.REVERSE_TOWER]: ItemConfigCardType.TAROT_REVERSE, // 72
81
- [CardType.REVERSE_STARS]: ItemConfigCardType.TAROT_REVERSE, // 73
82
- [CardType.REVERSE_MOON]: ItemConfigCardType.TAROT_REVERSE, // 74
83
- [CardType.REVERSE_SUN]: ItemConfigCardType.TAROT_REVERSE, // 75
84
- [CardType.REVERSE_JUDGEMENT]: ItemConfigCardType.TAROT_REVERSE, // 76
85
- [CardType.REVERSE_WORLD]: ItemConfigCardType.TAROT_REVERSE, // 77
86
- [CardType.CRACKED_KEY]: ItemConfigCardType.SPECIAL_OBJECT, // 78
87
- [CardType.QUEEN_OF_HEARTS]: ItemConfigCardType.SUIT, // 79
88
- [CardType.WILD]: ItemConfigCardType.SPECIAL, // 80
89
- [CardType.SOUL_ISAAC]: ItemConfigCardType.RUNE, // 81
90
- [CardType.SOUL_MAGDALENE]: ItemConfigCardType.RUNE, // 82
91
- [CardType.SOUL_CAIN]: ItemConfigCardType.RUNE, // 83
92
- [CardType.SOUL_JUDAS]: ItemConfigCardType.RUNE, // 84
93
- [CardType.SOUL_BLUE_BABY]: ItemConfigCardType.RUNE, // 85
94
- [CardType.SOUL_EVE]: ItemConfigCardType.RUNE, // 86
95
- [CardType.SOUL_SAMSON]: ItemConfigCardType.RUNE, // 87
96
- [CardType.SOUL_AZAZEL]: ItemConfigCardType.RUNE, // 88
97
- [CardType.SOUL_LAZARUS]: ItemConfigCardType.RUNE, // 89
98
- [CardType.SOUL_EDEN]: ItemConfigCardType.RUNE, // 90
99
- [CardType.SOUL_LOST]: ItemConfigCardType.RUNE, // 91
100
- [CardType.SOUL_LILITH]: ItemConfigCardType.RUNE, // 92
101
- [CardType.SOUL_KEEPER]: ItemConfigCardType.RUNE, // 93
102
- [CardType.SOUL_APOLLYON]: ItemConfigCardType.RUNE, // 94
103
- [CardType.SOUL_FORGOTTEN]: ItemConfigCardType.RUNE, // 95
104
- [CardType.SOUL_BETHANY]: ItemConfigCardType.RUNE, // 96
105
- [CardType.SOUL_JACOB]: ItemConfigCardType.RUNE, // 97
106
- } as const;