isaacscript-common 45.0.0 → 47.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.
- package/dist/index.rollup.d.ts +69 -17
- package/dist/isaacscript-common.lua +174 -21
- package/dist/src/classes/features/other/ModdedElementSets.d.ts +2 -1
- package/dist/src/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/src/classes/features/other/ModdedElementSets.lua +2 -2
- package/dist/src/functions/cards.d.ts +1 -1
- package/dist/src/functions/cards.lua +1 -1
- package/dist/src/functions/collectibles.d.ts +1 -1
- package/dist/src/functions/collectibles.d.ts.map +1 -1
- package/dist/src/functions/collectibles.lua +1 -1
- package/dist/src/functions/deepCopy.lua +1 -2
- package/dist/src/functions/pickups.d.ts +45 -1
- package/dist/src/functions/pickups.d.ts.map +1 -1
- package/dist/src/functions/pickups.lua +65 -0
- package/dist/src/functions/pills.d.ts +1 -1
- package/dist/src/functions/pills.lua +1 -1
- package/dist/src/functions/stage.d.ts +12 -12
- package/dist/src/functions/stage.d.ts.map +1 -1
- package/dist/src/functions/stage.lua +21 -21
- package/dist/src/objects/batteryNames.d.ts +10 -0
- package/dist/src/objects/batteryNames.d.ts.map +1 -0
- package/dist/src/objects/batteryNames.lua +13 -0
- package/dist/src/objects/bombNames.d.ts +13 -0
- package/dist/src/objects/bombNames.d.ts.map +1 -0
- package/dist/src/objects/bombNames.lua +16 -0
- package/dist/src/objects/chestNames.d.ts +16 -0
- package/dist/src/objects/chestNames.d.ts.map +1 -0
- package/dist/src/objects/chestNames.lua +19 -0
- package/dist/src/objects/coinNames.d.ts +13 -0
- package/dist/src/objects/coinNames.d.ts.map +1 -0
- package/dist/src/objects/coinNames.lua +16 -0
- package/dist/src/objects/heartNames.d.ts +18 -0
- package/dist/src/objects/heartNames.d.ts.map +1 -0
- package/dist/src/objects/heartNames.lua +21 -0
- package/dist/src/objects/keyNames.d.ts +10 -0
- package/dist/src/objects/keyNames.d.ts.map +1 -0
- package/dist/src/objects/keyNames.lua +13 -0
- package/dist/src/objects/{englishLevelNames.d.ts → levelNames.d.ts} +2 -2
- package/dist/src/objects/levelNames.d.ts.map +1 -0
- package/dist/src/objects/{englishLevelNames.lua → levelNames.lua} +1 -1
- package/dist/src/objects/sackNames.d.ts +8 -0
- package/dist/src/objects/sackNames.d.ts.map +1 -0
- package/dist/src/objects/sackNames.lua +7 -0
- package/package.json +1 -1
- package/src/classes/features/other/ModdedElementSets.ts +4 -3
- package/src/functions/cards.ts +1 -1
- package/src/functions/collectibles.ts +1 -1
- package/src/functions/deepCopy.ts +1 -2
- package/src/functions/pickups.ts +89 -0
- package/src/functions/pills.ts +3 -1
- package/src/functions/stage.ts +26 -26
- package/src/objects/batteryNames.ts +12 -0
- package/src/objects/bombNames.ts +16 -0
- package/src/objects/cardNames.ts +98 -98
- package/src/objects/chestNames.ts +18 -0
- package/src/objects/coinNames.ts +15 -0
- package/src/objects/heartNames.ts +20 -0
- package/src/objects/keyNames.ts +12 -0
- package/src/objects/languageNames.ts +7 -7
- package/src/objects/{englishLevelNames.ts → levelNames.ts} +26 -1
- package/src/objects/pillEffectNames.ts +50 -50
- package/src/objects/pillEffectTypes.ts +50 -50
- package/src/objects/sackNames.ts +10 -0
- package/dist/src/objects/englishLevelNames.d.ts.map +0 -1
package/src/functions/pickups.ts
CHANGED
|
@@ -1,18 +1,74 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
BatterySubType,
|
|
3
|
+
BombSubType,
|
|
2
4
|
CoinSubType,
|
|
3
5
|
HeartSubType,
|
|
6
|
+
KeySubType,
|
|
4
7
|
PickupVariant,
|
|
8
|
+
SackSubType,
|
|
5
9
|
} from "isaac-typescript-definitions";
|
|
6
10
|
import { CHEST_PICKUP_VARIANTS_SET } from "../core/constants";
|
|
11
|
+
import { BATTERY_NAMES, DEFAULT_BATTERY_NAME } from "../objects/batteryNames";
|
|
12
|
+
import { BOMB_NAMES, DEFAULT_BOMB_NAME } from "../objects/bombNames";
|
|
13
|
+
import { CHEST_NAMES } from "../objects/chestNames";
|
|
14
|
+
import { COIN_NAMES, DEFAULT_COIN_NAME } from "../objects/coinNames";
|
|
7
15
|
import {
|
|
8
16
|
COIN_SUB_TYPE_TO_VALUE,
|
|
9
17
|
DEFAULT_COIN_VALUE,
|
|
10
18
|
} from "../objects/coinSubTypeToValue";
|
|
19
|
+
import { DEFAULT_HEART_NAME, HEART_NAMES } from "../objects/heartNames";
|
|
20
|
+
import { DEFAULT_KEY_NAME, KEY_NAMES } from "../objects/keyNames";
|
|
21
|
+
import { DEFAULT_SACK_NAME, SACK_NAMES } from "../objects/sackNames";
|
|
11
22
|
import { RED_HEART_SUB_TYPES_SET } from "../sets/redHeartSubTypesSet";
|
|
12
23
|
import { removeEntities } from "./entities";
|
|
13
24
|
import { isHeart } from "./pickupVariants";
|
|
14
25
|
import { getHearts } from "./pickupsSpecific";
|
|
15
26
|
|
|
27
|
+
/**
|
|
28
|
+
* Helper function to get a battery name from a `BatterySubType`, as listed in the "entities2.xml"
|
|
29
|
+
* file.
|
|
30
|
+
*
|
|
31
|
+
* For example, `getBatteryName(BatterySubType.MICRO)` would return "Micro Battery".
|
|
32
|
+
*/
|
|
33
|
+
export function getBatteryName(batterySubType: BatterySubType): string {
|
|
34
|
+
// Handle modded hearts.
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
36
|
+
return BATTERY_NAMES[batterySubType] ?? DEFAULT_BATTERY_NAME;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Helper function to get a bomb name from a `BombSubType`, as listed in the "entities2.xml" file.
|
|
41
|
+
*
|
|
42
|
+
* For example, `getBombName(BombSubType.DOUBLE_PACK)` would return "Double Bomb".
|
|
43
|
+
*/
|
|
44
|
+
export function getBombName(bombSubType: BombSubType): string {
|
|
45
|
+
// Handle modded bombs.
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
47
|
+
return BOMB_NAMES[bombSubType] ?? DEFAULT_BOMB_NAME;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Helper function to get a chest name from a `PickupVariant`, as listed in the "entities2.xml"
|
|
52
|
+
* file. Returns "Unknown" if the pickup variant was not a chest.
|
|
53
|
+
*
|
|
54
|
+
* For example, `getChestName(PickupVariant.SPIKED_CHEST)` would return "Spiked Chest".
|
|
55
|
+
*/
|
|
56
|
+
export function getChestName(pickupVariant: PickupVariant): string {
|
|
57
|
+
const chestNames = CHEST_NAMES as Partial<Record<PickupVariant, string>>;
|
|
58
|
+
return chestNames[pickupVariant] ?? "Unknown";
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Helper function to get a coin name from a `CoinSubType`, as listed in the "entities2.xml" file.
|
|
63
|
+
*
|
|
64
|
+
* For example, `getCoinName(CoinSubType.DOUBLE_PACK)` would return "Double Penny".
|
|
65
|
+
*/
|
|
66
|
+
export function getCoinName(coinSubType: CoinSubType): string {
|
|
67
|
+
// Handle modded coins.
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
69
|
+
return COIN_NAMES[coinSubType] ?? DEFAULT_COIN_NAME;
|
|
70
|
+
}
|
|
71
|
+
|
|
16
72
|
/**
|
|
17
73
|
* Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
|
|
18
74
|
* sub-types.
|
|
@@ -24,12 +80,45 @@ export function getCoinValue(coinSubType: CoinSubType): int {
|
|
|
24
80
|
return value ?? DEFAULT_COIN_VALUE;
|
|
25
81
|
}
|
|
26
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Helper function to get a heart name from a `HeartSubType`, as listed in the "entities2.xml" file.
|
|
85
|
+
*
|
|
86
|
+
* For example, `getHeartName(HeartSubType.ETERNAL)` would return "Heart (eternal)".
|
|
87
|
+
*/
|
|
88
|
+
export function getHeartName(heartSubType: HeartSubType): string {
|
|
89
|
+
// Handle modded hearts.
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
91
|
+
return HEART_NAMES[heartSubType] ?? DEFAULT_HEART_NAME;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Helper function to get a key name from a `KeySubType`, as listed in the "entities2.xml" file.
|
|
96
|
+
*
|
|
97
|
+
* For example, `getKeyName(KeySubType.DOUBLE_PACK)` would return "Key Ring".
|
|
98
|
+
*/
|
|
99
|
+
export function getKeyName(keySubType: KeySubType): string {
|
|
100
|
+
// Handle modded bombs.
|
|
101
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
102
|
+
return KEY_NAMES[keySubType] ?? DEFAULT_KEY_NAME;
|
|
103
|
+
}
|
|
104
|
+
|
|
27
105
|
/** Helper function to get all of the red heart pickup entities in the room. */
|
|
28
106
|
export function getRedHearts(): EntityPickupHeart[] {
|
|
29
107
|
const hearts = getHearts();
|
|
30
108
|
return hearts.filter((heart) => RED_HEART_SUB_TYPES_SET.has(heart.SubType));
|
|
31
109
|
}
|
|
32
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Helper function to get a sack name from a `SackSubType`, as listed in the "entities2.xml" file.
|
|
113
|
+
*
|
|
114
|
+
* For example, `getSackName(SackSubType.NORMAL)` would return "Grab Bag".
|
|
115
|
+
*/
|
|
116
|
+
export function getSackName(sackSubType: SackSubType): string {
|
|
117
|
+
// Handle modded hearts.
|
|
118
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
119
|
+
return SACK_NAMES[sackSubType] ?? DEFAULT_SACK_NAME;
|
|
120
|
+
}
|
|
121
|
+
|
|
33
122
|
/** Helper function to test if the provided pickup matches one of the various chest variants. */
|
|
34
123
|
export function isChest(pickup: EntityPickup): boolean {
|
|
35
124
|
return isChestVariant(pickup.Variant);
|
package/src/functions/pills.ts
CHANGED
|
@@ -149,7 +149,9 @@ export function getPillEffectClass(
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
|
-
* Helper function to get a pill effect name from a PillEffect
|
|
152
|
+
* Helper function to get a pill effect name from a `PillEffect`.
|
|
153
|
+
*
|
|
154
|
+
* This function works for both vanilla and modded trinkets.
|
|
153
155
|
*
|
|
154
156
|
* For example, `getPillEffectName(PillEffect.BAD_GAS)` would return "Bad Gas".
|
|
155
157
|
*/
|
package/src/functions/stage.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
StageType,
|
|
7
7
|
} from "isaac-typescript-definitions";
|
|
8
8
|
import { game } from "../core/cachedClasses";
|
|
9
|
-
import {
|
|
9
|
+
import { LEVEL_NAMES } from "../objects/levelNames";
|
|
10
10
|
import { ROOM_TYPE_SPECIAL_GOTO_PREFIXES } from "../objects/roomTypeSpecialGotoPrefixes";
|
|
11
11
|
import { STAGE_TO_STAGE_ID } from "../objects/stageToStageID";
|
|
12
12
|
import { STAGE_TYPE_SUFFIXES } from "../objects/stageTypeSuffixes";
|
|
@@ -90,6 +90,29 @@ export function getEffectiveStage(): LevelStage {
|
|
|
90
90
|
return stage;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Helper function to get the corresponding "goto" console command that would correspond to the
|
|
95
|
+
* provided room type and room variant.
|
|
96
|
+
*
|
|
97
|
+
* @param roomType The `RoomType` of the destination room.
|
|
98
|
+
* @param roomVariant The variant of the destination room.
|
|
99
|
+
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
100
|
+
* the `goto` command (instead of `d`) if the room type is
|
|
101
|
+
* `RoomType.DEFAULT` (1). False by default.
|
|
102
|
+
*/
|
|
103
|
+
export function getGotoCommand(
|
|
104
|
+
roomType: RoomType,
|
|
105
|
+
roomVariant: int,
|
|
106
|
+
useSpecialRoomsForRoomTypeDefault = false,
|
|
107
|
+
): string {
|
|
108
|
+
const isNormalRoom =
|
|
109
|
+
roomType === RoomType.DEFAULT && !useSpecialRoomsForRoomTypeDefault;
|
|
110
|
+
const roomTypeSpecialGotoPrefix = ROOM_TYPE_SPECIAL_GOTO_PREFIXES[roomType];
|
|
111
|
+
const prefix = isNormalRoom ? "d" : `s.${roomTypeSpecialGotoPrefix}`;
|
|
112
|
+
|
|
113
|
+
return `goto ${prefix}.${roomVariant}`;
|
|
114
|
+
}
|
|
115
|
+
|
|
93
116
|
/**
|
|
94
117
|
* Helper function to get the English name of the level. For example, "Caves 1".
|
|
95
118
|
*
|
|
@@ -101,7 +124,7 @@ export function getEffectiveStage(): LevelStage {
|
|
|
101
124
|
* @param stage Optional. If not specified, the current stage will be used.
|
|
102
125
|
* @param stageType Optional. If not specified, the current stage type will be used.
|
|
103
126
|
*/
|
|
104
|
-
export function
|
|
127
|
+
export function getLevelName(
|
|
105
128
|
stage?: LevelStage,
|
|
106
129
|
stageType?: StageType,
|
|
107
130
|
): string {
|
|
@@ -115,33 +138,10 @@ export function getEnglishLevelName(
|
|
|
115
138
|
stageType = level.GetStageType();
|
|
116
139
|
}
|
|
117
140
|
|
|
118
|
-
const stageNames =
|
|
141
|
+
const stageNames = LEVEL_NAMES[stage];
|
|
119
142
|
return stageNames[stageType];
|
|
120
143
|
}
|
|
121
144
|
|
|
122
|
-
/**
|
|
123
|
-
* Helper function to get the corresponding "goto" console command that would correspond to the
|
|
124
|
-
* provided room type and room variant.
|
|
125
|
-
*
|
|
126
|
-
* @param roomType The `RoomType` of the destination room.
|
|
127
|
-
* @param roomVariant The variant of the destination room.
|
|
128
|
-
* @param useSpecialRoomsForRoomTypeDefault Optional. Whether to use `s.default` as the prefix for
|
|
129
|
-
* the `goto` command (instead of `d`) if the room type is
|
|
130
|
-
* `RoomType.DEFAULT` (1). False by default.
|
|
131
|
-
*/
|
|
132
|
-
export function getGotoCommand(
|
|
133
|
-
roomType: RoomType,
|
|
134
|
-
roomVariant: int,
|
|
135
|
-
useSpecialRoomsForRoomTypeDefault = false,
|
|
136
|
-
): string {
|
|
137
|
-
const isNormalRoom =
|
|
138
|
-
roomType === RoomType.DEFAULT && !useSpecialRoomsForRoomTypeDefault;
|
|
139
|
-
const roomTypeSpecialGotoPrefix = ROOM_TYPE_SPECIAL_GOTO_PREFIXES[roomType];
|
|
140
|
-
const prefix = isNormalRoom ? "d" : `s.${roomTypeSpecialGotoPrefix}`;
|
|
141
|
-
|
|
142
|
-
return `goto ${prefix}.${roomVariant}`;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
145
|
/** Alias for the `Level.GetStage` method. */
|
|
146
146
|
export function getStage(): LevelStage {
|
|
147
147
|
const level = game.GetLevel();
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BatterySubType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_BATTERY_NAME = "Unknown";
|
|
4
|
+
|
|
5
|
+
/** Taken from "entities2.xml". */
|
|
6
|
+
export const BATTERY_NAMES = {
|
|
7
|
+
[BatterySubType.NULL]: DEFAULT_BATTERY_NAME, // 0
|
|
8
|
+
[BatterySubType.NORMAL]: "Lil' Battery", // 1
|
|
9
|
+
[BatterySubType.MICRO]: "Micro Battery", // 2
|
|
10
|
+
[BatterySubType.MEGA]: "Mega Battery", // 3
|
|
11
|
+
[BatterySubType.GOLDEN]: "Golden Battery", // 4
|
|
12
|
+
} as const satisfies Record<BatterySubType, string>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BombSubType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_BOMB_NAME = "Unknown";
|
|
4
|
+
|
|
5
|
+
/** Taken from "entities2.xml". */
|
|
6
|
+
export const BOMB_NAMES = {
|
|
7
|
+
[BombSubType.NULL]: DEFAULT_BOMB_NAME, // 0
|
|
8
|
+
[BombSubType.NORMAL]: "Bomb", // 1
|
|
9
|
+
[BombSubType.DOUBLE_PACK]: "Double Bomb", // 2
|
|
10
|
+
[BombSubType.TROLL]: "Troll Bomb", // 3
|
|
11
|
+
[BombSubType.GOLDEN]: "Golden Bomb", // 4
|
|
12
|
+
[BombSubType.MEGA_TROLL]: "Megatroll Bomb", // 5
|
|
13
|
+
// The entry for "Golden Troll Bomb" is absent in "entities2.xml", so we infer the name.
|
|
14
|
+
[BombSubType.GOLDEN_TROLL]: "Golden Troll Bomb", // 6
|
|
15
|
+
[BombSubType.GIGA]: "Giga Bomb", // 7
|
|
16
|
+
} as const satisfies Record<BombSubType, string>;
|
package/src/objects/cardNames.ts
CHANGED
|
@@ -4,102 +4,102 @@ export const DEFAULT_CARD_NAME = "Unknown";
|
|
|
4
4
|
|
|
5
5
|
/** This is a temporary map due to missing features in the vanilla API. */
|
|
6
6
|
export const CARD_NAMES = {
|
|
7
|
-
[CardType.NULL]: DEFAULT_CARD_NAME,
|
|
8
|
-
[CardType.FOOL]: "0 - The Fool",
|
|
9
|
-
[CardType.MAGICIAN]: "I - The Magician",
|
|
10
|
-
[CardType.HIGH_PRIESTESS]: "II - The High Priestess",
|
|
11
|
-
[CardType.EMPRESS]: "III - The Empress",
|
|
12
|
-
[CardType.EMPEROR]: "IV - The Emperor",
|
|
13
|
-
[CardType.HIEROPHANT]: "V - The Hierophant",
|
|
14
|
-
[CardType.LOVERS]: "VI - The Lovers",
|
|
15
|
-
[CardType.CHARIOT]: "VII - The Chariot",
|
|
16
|
-
[CardType.JUSTICE]: "VIII - Justice",
|
|
17
|
-
[CardType.HERMIT]: "IX - The Hermit",
|
|
18
|
-
[CardType.WHEEL_OF_FORTUNE]: "X - Wheel of Fortune",
|
|
19
|
-
[CardType.STRENGTH]: "XI - Strength",
|
|
20
|
-
[CardType.HANGED_MAN]: "XII - The Hanged Man",
|
|
21
|
-
[CardType.DEATH]: "XIII - Death",
|
|
22
|
-
[CardType.TEMPERANCE]: "XIV - Temperance",
|
|
23
|
-
[CardType.DEVIL]: "XV - The Devil",
|
|
24
|
-
[CardType.TOWER]: "XVI - The Tower",
|
|
25
|
-
[CardType.STARS]: "XVII - The Stars",
|
|
26
|
-
[CardType.MOON]: "XVIII - The Moon",
|
|
27
|
-
[CardType.SUN]: "XIX - The Sun",
|
|
28
|
-
[CardType.JUDGEMENT]: "XX - Judgement",
|
|
29
|
-
[CardType.WORLD]: "XXI - The World",
|
|
30
|
-
[CardType.CLUBS_2]: "2 of Clubs",
|
|
31
|
-
[CardType.DIAMONDS_2]: "2 of Diamonds",
|
|
32
|
-
[CardType.SPADES_2]: "2 of Spades",
|
|
33
|
-
[CardType.HEARTS_2]: "2 of Hearts",
|
|
34
|
-
[CardType.ACE_OF_CLUBS]: "Ace of Clubs",
|
|
35
|
-
[CardType.ACE_OF_DIAMONDS]: "Ace of Diamonds",
|
|
36
|
-
[CardType.ACE_OF_SPADES]: "Ace of Spades",
|
|
37
|
-
[CardType.ACE_OF_HEARTS]: "Ace of Hearts",
|
|
38
|
-
[CardType.JOKER]: "Joker",
|
|
39
|
-
[CardType.RUNE_HAGALAZ]: "Hagalaz",
|
|
40
|
-
[CardType.RUNE_JERA]: "Jera",
|
|
41
|
-
[CardType.RUNE_EHWAZ]: "Ehwaz",
|
|
42
|
-
[CardType.RUNE_DAGAZ]: "Dagaz",
|
|
43
|
-
[CardType.RUNE_ANSUZ]: "Ansuz",
|
|
44
|
-
[CardType.RUNE_PERTHRO]: "Perthro",
|
|
45
|
-
[CardType.RUNE_BERKANO]: "Berkano",
|
|
46
|
-
[CardType.RUNE_ALGIZ]: "Algiz",
|
|
47
|
-
[CardType.RUNE_BLANK]: "Blank Rune",
|
|
48
|
-
[CardType.RUNE_BLACK]: "Black Rune",
|
|
49
|
-
[CardType.CHAOS]: "Chaos Card",
|
|
50
|
-
[CardType.CREDIT]: "Credit Card",
|
|
51
|
-
[CardType.RULES]: "Rules Card",
|
|
52
|
-
[CardType.AGAINST_HUMANITY]: "A Card Against Humanity",
|
|
53
|
-
[CardType.SUICIDE_KING]: "Suicide King",
|
|
54
|
-
[CardType.GET_OUT_OF_JAIL_FREE]: "Get Out Of Jail Free Card",
|
|
55
|
-
[CardType.QUESTION_MARK]: "? Card",
|
|
56
|
-
[CardType.DICE_SHARD]: "Dice Shard",
|
|
57
|
-
[CardType.EMERGENCY_CONTACT]: "Emergency Contact",
|
|
58
|
-
[CardType.HOLY]: "Holy Card",
|
|
59
|
-
[CardType.HUGE_GROWTH]: "Huge Growth",
|
|
60
|
-
[CardType.ANCIENT_RECALL]: "Ancient Recall",
|
|
61
|
-
[CardType.ERA_WALK]: "Era Walk",
|
|
62
|
-
[CardType.RUNE_SHARD]: "Rune Shard",
|
|
63
|
-
[CardType.REVERSE_FOOL]: "0 - The Fool?",
|
|
64
|
-
[CardType.REVERSE_MAGICIAN]: "I - The Magician?",
|
|
65
|
-
[CardType.REVERSE_HIGH_PRIESTESS]: "II - The High Priestess?",
|
|
66
|
-
[CardType.REVERSE_EMPRESS]: "III - The Empress?",
|
|
67
|
-
[CardType.REVERSE_EMPEROR]: "IV - The Emperor?",
|
|
68
|
-
[CardType.REVERSE_HIEROPHANT]: "V - The Hierophant?",
|
|
69
|
-
[CardType.REVERSE_LOVERS]: "VI - The Lovers?",
|
|
70
|
-
[CardType.REVERSE_CHARIOT]: "VII - The Chariot?",
|
|
71
|
-
[CardType.REVERSE_JUSTICE]: "VIII - Justice?",
|
|
72
|
-
[CardType.REVERSE_HERMIT]: "IX - The Hermit?",
|
|
73
|
-
[CardType.REVERSE_WHEEL_OF_FORTUNE]: "X - Wheel of Fortune?",
|
|
74
|
-
[CardType.REVERSE_STRENGTH]: "XI - Strength?",
|
|
75
|
-
[CardType.REVERSE_HANGED_MAN]: "XII - The Hanged Man?",
|
|
76
|
-
[CardType.REVERSE_DEATH]: "XIII - Death?",
|
|
77
|
-
[CardType.REVERSE_TEMPERANCE]: "XIV - Temperance?",
|
|
78
|
-
[CardType.REVERSE_DEVIL]: "XV - The Devil?",
|
|
79
|
-
[CardType.REVERSE_TOWER]: "XVI - The Tower?",
|
|
80
|
-
[CardType.REVERSE_STARS]: "XVII - The Stars?",
|
|
81
|
-
[CardType.REVERSE_MOON]: "XVIII - The Moon?",
|
|
82
|
-
[CardType.REVERSE_SUN]: "XIX - The Sun?",
|
|
83
|
-
[CardType.REVERSE_JUDGEMENT]: "XX - Judgement?",
|
|
84
|
-
[CardType.REVERSE_WORLD]: "XXI - The World?",
|
|
85
|
-
[CardType.CRACKED_KEY]: "Cracked Key",
|
|
86
|
-
[CardType.QUEEN_OF_HEARTS]: "Queen of Hearts",
|
|
87
|
-
[CardType.WILD]: "Wild Card",
|
|
88
|
-
[CardType.SOUL_ISAAC]: "Soul of Isaac",
|
|
89
|
-
[CardType.SOUL_MAGDALENE]: "Soul of Magdalene",
|
|
90
|
-
[CardType.SOUL_CAIN]: "Soul of Cain",
|
|
91
|
-
[CardType.SOUL_JUDAS]: "Soul of Judas",
|
|
92
|
-
[CardType.SOUL_BLUE_BABY]: "Soul of ???",
|
|
93
|
-
[CardType.SOUL_EVE]: "Soul of Eve",
|
|
94
|
-
[CardType.SOUL_SAMSON]: "Soul of Samson",
|
|
95
|
-
[CardType.SOUL_AZAZEL]: "Soul of Azazel",
|
|
96
|
-
[CardType.SOUL_LAZARUS]: "Soul of Lazarus",
|
|
97
|
-
[CardType.SOUL_EDEN]: "Soul of Eden",
|
|
98
|
-
[CardType.SOUL_LOST]: "Soul of the Lost",
|
|
99
|
-
[CardType.SOUL_LILITH]: "Soul of Lilith",
|
|
100
|
-
[CardType.SOUL_KEEPER]: "Soul of the Keeper",
|
|
101
|
-
[CardType.SOUL_APOLLYON]: "Soul of Apollyon",
|
|
102
|
-
[CardType.SOUL_FORGOTTEN]: "Soul of the Forgotten",
|
|
103
|
-
[CardType.SOUL_BETHANY]: "Soul of Bethany",
|
|
104
|
-
[CardType.SOUL_JACOB]: "Soul of Jacob and Esau",
|
|
7
|
+
[CardType.NULL]: DEFAULT_CARD_NAME, // 0
|
|
8
|
+
[CardType.FOOL]: "0 - The Fool", // 1
|
|
9
|
+
[CardType.MAGICIAN]: "I - The Magician", // 2
|
|
10
|
+
[CardType.HIGH_PRIESTESS]: "II - The High Priestess", // 3
|
|
11
|
+
[CardType.EMPRESS]: "III - The Empress", // 4
|
|
12
|
+
[CardType.EMPEROR]: "IV - The Emperor", // 5
|
|
13
|
+
[CardType.HIEROPHANT]: "V - The Hierophant", // 6
|
|
14
|
+
[CardType.LOVERS]: "VI - The Lovers", // 7
|
|
15
|
+
[CardType.CHARIOT]: "VII - The Chariot", // 8
|
|
16
|
+
[CardType.JUSTICE]: "VIII - Justice", // 9
|
|
17
|
+
[CardType.HERMIT]: "IX - The Hermit", // 10
|
|
18
|
+
[CardType.WHEEL_OF_FORTUNE]: "X - Wheel of Fortune", // 11
|
|
19
|
+
[CardType.STRENGTH]: "XI - Strength", // 12
|
|
20
|
+
[CardType.HANGED_MAN]: "XII - The Hanged Man", // 13
|
|
21
|
+
[CardType.DEATH]: "XIII - Death", // 14
|
|
22
|
+
[CardType.TEMPERANCE]: "XIV - Temperance", // 15
|
|
23
|
+
[CardType.DEVIL]: "XV - The Devil", // 16
|
|
24
|
+
[CardType.TOWER]: "XVI - The Tower", // 17
|
|
25
|
+
[CardType.STARS]: "XVII - The Stars", // 18
|
|
26
|
+
[CardType.MOON]: "XVIII - The Moon", // 19
|
|
27
|
+
[CardType.SUN]: "XIX - The Sun", // 20
|
|
28
|
+
[CardType.JUDGEMENT]: "XX - Judgement", // 21
|
|
29
|
+
[CardType.WORLD]: "XXI - The World", // 22
|
|
30
|
+
[CardType.CLUBS_2]: "2 of Clubs", // 23
|
|
31
|
+
[CardType.DIAMONDS_2]: "2 of Diamonds", // 24
|
|
32
|
+
[CardType.SPADES_2]: "2 of Spades", // 25
|
|
33
|
+
[CardType.HEARTS_2]: "2 of Hearts", // 26
|
|
34
|
+
[CardType.ACE_OF_CLUBS]: "Ace of Clubs", // 27
|
|
35
|
+
[CardType.ACE_OF_DIAMONDS]: "Ace of Diamonds", // 28
|
|
36
|
+
[CardType.ACE_OF_SPADES]: "Ace of Spades", // 29
|
|
37
|
+
[CardType.ACE_OF_HEARTS]: "Ace of Hearts", // 30
|
|
38
|
+
[CardType.JOKER]: "Joker", // 31
|
|
39
|
+
[CardType.RUNE_HAGALAZ]: "Hagalaz", // 32
|
|
40
|
+
[CardType.RUNE_JERA]: "Jera", // 33
|
|
41
|
+
[CardType.RUNE_EHWAZ]: "Ehwaz", // 34
|
|
42
|
+
[CardType.RUNE_DAGAZ]: "Dagaz", // 35
|
|
43
|
+
[CardType.RUNE_ANSUZ]: "Ansuz", // 36
|
|
44
|
+
[CardType.RUNE_PERTHRO]: "Perthro", // 37
|
|
45
|
+
[CardType.RUNE_BERKANO]: "Berkano", // 38
|
|
46
|
+
[CardType.RUNE_ALGIZ]: "Algiz", // 39
|
|
47
|
+
[CardType.RUNE_BLANK]: "Blank Rune", // 40
|
|
48
|
+
[CardType.RUNE_BLACK]: "Black Rune", // 41
|
|
49
|
+
[CardType.CHAOS]: "Chaos Card", // 42
|
|
50
|
+
[CardType.CREDIT]: "Credit Card", // 43
|
|
51
|
+
[CardType.RULES]: "Rules Card", // 44
|
|
52
|
+
[CardType.AGAINST_HUMANITY]: "A Card Against Humanity", // 45
|
|
53
|
+
[CardType.SUICIDE_KING]: "Suicide King", // 46
|
|
54
|
+
[CardType.GET_OUT_OF_JAIL_FREE]: "Get Out Of Jail Free Card", // 47
|
|
55
|
+
[CardType.QUESTION_MARK]: "? Card", // 48
|
|
56
|
+
[CardType.DICE_SHARD]: "Dice Shard", // 49
|
|
57
|
+
[CardType.EMERGENCY_CONTACT]: "Emergency Contact", // 50
|
|
58
|
+
[CardType.HOLY]: "Holy Card", // 51
|
|
59
|
+
[CardType.HUGE_GROWTH]: "Huge Growth", // 52
|
|
60
|
+
[CardType.ANCIENT_RECALL]: "Ancient Recall", // 53
|
|
61
|
+
[CardType.ERA_WALK]: "Era Walk", // 54
|
|
62
|
+
[CardType.RUNE_SHARD]: "Rune Shard", // 55
|
|
63
|
+
[CardType.REVERSE_FOOL]: "0 - The Fool?", // 56
|
|
64
|
+
[CardType.REVERSE_MAGICIAN]: "I - The Magician?", // 57
|
|
65
|
+
[CardType.REVERSE_HIGH_PRIESTESS]: "II - The High Priestess?", // 58
|
|
66
|
+
[CardType.REVERSE_EMPRESS]: "III - The Empress?", // 59
|
|
67
|
+
[CardType.REVERSE_EMPEROR]: "IV - The Emperor?", // 60
|
|
68
|
+
[CardType.REVERSE_HIEROPHANT]: "V - The Hierophant?", // 61
|
|
69
|
+
[CardType.REVERSE_LOVERS]: "VI - The Lovers?", // 62
|
|
70
|
+
[CardType.REVERSE_CHARIOT]: "VII - The Chariot?", // 63
|
|
71
|
+
[CardType.REVERSE_JUSTICE]: "VIII - Justice?", // 64
|
|
72
|
+
[CardType.REVERSE_HERMIT]: "IX - The Hermit?", // 65
|
|
73
|
+
[CardType.REVERSE_WHEEL_OF_FORTUNE]: "X - Wheel of Fortune?", // 66
|
|
74
|
+
[CardType.REVERSE_STRENGTH]: "XI - Strength?", // 67
|
|
75
|
+
[CardType.REVERSE_HANGED_MAN]: "XII - The Hanged Man?", // 68
|
|
76
|
+
[CardType.REVERSE_DEATH]: "XIII - Death?", // 69
|
|
77
|
+
[CardType.REVERSE_TEMPERANCE]: "XIV - Temperance?", // 70
|
|
78
|
+
[CardType.REVERSE_DEVIL]: "XV - The Devil?", // 71
|
|
79
|
+
[CardType.REVERSE_TOWER]: "XVI - The Tower?", // 72
|
|
80
|
+
[CardType.REVERSE_STARS]: "XVII - The Stars?", // 73
|
|
81
|
+
[CardType.REVERSE_MOON]: "XVIII - The Moon?", // 74
|
|
82
|
+
[CardType.REVERSE_SUN]: "XIX - The Sun?", // 75
|
|
83
|
+
[CardType.REVERSE_JUDGEMENT]: "XX - Judgement?", // 76
|
|
84
|
+
[CardType.REVERSE_WORLD]: "XXI - The World?", // 77
|
|
85
|
+
[CardType.CRACKED_KEY]: "Cracked Key", // 78
|
|
86
|
+
[CardType.QUEEN_OF_HEARTS]: "Queen of Hearts", // 79
|
|
87
|
+
[CardType.WILD]: "Wild Card", // 80
|
|
88
|
+
[CardType.SOUL_ISAAC]: "Soul of Isaac", // 81
|
|
89
|
+
[CardType.SOUL_MAGDALENE]: "Soul of Magdalene", // 82
|
|
90
|
+
[CardType.SOUL_CAIN]: "Soul of Cain", // 83
|
|
91
|
+
[CardType.SOUL_JUDAS]: "Soul of Judas", // 84
|
|
92
|
+
[CardType.SOUL_BLUE_BABY]: "Soul of ???", // 85
|
|
93
|
+
[CardType.SOUL_EVE]: "Soul of Eve", // 86
|
|
94
|
+
[CardType.SOUL_SAMSON]: "Soul of Samson", // 87
|
|
95
|
+
[CardType.SOUL_AZAZEL]: "Soul of Azazel", // 88
|
|
96
|
+
[CardType.SOUL_LAZARUS]: "Soul of Lazarus", // 89
|
|
97
|
+
[CardType.SOUL_EDEN]: "Soul of Eden", // 90
|
|
98
|
+
[CardType.SOUL_LOST]: "Soul of the Lost", // 91
|
|
99
|
+
[CardType.SOUL_LILITH]: "Soul of Lilith", // 92
|
|
100
|
+
[CardType.SOUL_KEEPER]: "Soul of the Keeper", // 93
|
|
101
|
+
[CardType.SOUL_APOLLYON]: "Soul of Apollyon", // 94
|
|
102
|
+
[CardType.SOUL_FORGOTTEN]: "Soul of the Forgotten", // 95
|
|
103
|
+
[CardType.SOUL_BETHANY]: "Soul of Bethany", // 96
|
|
104
|
+
[CardType.SOUL_JACOB]: "Soul of Jacob and Esau", // 97
|
|
105
105
|
} as const satisfies Record<CardType, string>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PickupVariant } from "isaac-typescript-definitions";
|
|
2
|
+
import type { CHEST_PICKUP_VARIANTS } from "../core/constants";
|
|
3
|
+
|
|
4
|
+
/** Taken from "entities2.xml". */
|
|
5
|
+
export const CHEST_NAMES = {
|
|
6
|
+
[PickupVariant.CHEST]: "Chest", // 50
|
|
7
|
+
[PickupVariant.BOMB_CHEST]: "Bomb Chest", // 51
|
|
8
|
+
[PickupVariant.SPIKED_CHEST]: "Spiked Chest", // 52
|
|
9
|
+
[PickupVariant.ETERNAL_CHEST]: "Eternal Chest", // 53
|
|
10
|
+
[PickupVariant.MIMIC_CHEST]: "Mimic Chest", // 54
|
|
11
|
+
[PickupVariant.OLD_CHEST]: "Old Chest", // 55
|
|
12
|
+
[PickupVariant.WOODEN_CHEST]: "Wooden Chest", // 56
|
|
13
|
+
[PickupVariant.MEGA_CHEST]: "Mega Chest", // 57
|
|
14
|
+
[PickupVariant.HAUNTED_CHEST]: "Haunted Chest", // 58
|
|
15
|
+
[PickupVariant.LOCKED_CHEST]: "Locked Chest", // 60
|
|
16
|
+
[PickupVariant.RED_CHEST]: "Red Chest", // 360
|
|
17
|
+
[PickupVariant.MOMS_CHEST]: "Mom's Chest", // 390
|
|
18
|
+
} as const satisfies Record<(typeof CHEST_PICKUP_VARIANTS)[number], string>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CoinSubType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_COIN_NAME = "Unknown";
|
|
4
|
+
|
|
5
|
+
/** Taken from "entities2.xml". */
|
|
6
|
+
export const COIN_NAMES = {
|
|
7
|
+
[CoinSubType.NULL]: DEFAULT_COIN_NAME, // 0
|
|
8
|
+
[CoinSubType.PENNY]: "Penny", // 1
|
|
9
|
+
[CoinSubType.NICKEL]: "Nickel", // 2
|
|
10
|
+
[CoinSubType.DIME]: "Dime", // 3
|
|
11
|
+
[CoinSubType.DOUBLE_PACK]: "Double Penny", // 4
|
|
12
|
+
[CoinSubType.LUCKY_PENNY]: "Lucky Penny", // 5
|
|
13
|
+
[CoinSubType.STICKY_NICKEL]: "Sticky Nickel", // 6
|
|
14
|
+
[CoinSubType.GOLDEN]: "Golden Penny", // 7
|
|
15
|
+
} as const satisfies Record<CoinSubType, string>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { HeartSubType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_HEART_NAME = "Unknown";
|
|
4
|
+
|
|
5
|
+
/** Taken from "entities2.xml". */
|
|
6
|
+
export const HEART_NAMES = {
|
|
7
|
+
[HeartSubType.NULL]: DEFAULT_HEART_NAME, // 0
|
|
8
|
+
[HeartSubType.FULL]: "Heart", // 1
|
|
9
|
+
[HeartSubType.HALF]: "Heart (half)", // 2
|
|
10
|
+
[HeartSubType.SOUL]: "Heart (soul)", // 3
|
|
11
|
+
[HeartSubType.ETERNAL]: "Heart (eternal)", // 4
|
|
12
|
+
[HeartSubType.DOUBLE_PACK]: "Heart (double)", // 5
|
|
13
|
+
[HeartSubType.BLACK]: "Black Heart", // 6
|
|
14
|
+
[HeartSubType.GOLDEN]: "Gold Heart", // 7
|
|
15
|
+
[HeartSubType.HALF_SOUL]: "Heart (half soul)", // 8
|
|
16
|
+
[HeartSubType.SCARED]: "Scared Heart", // 9
|
|
17
|
+
[HeartSubType.BLENDED]: "Blended Heart", // 10
|
|
18
|
+
[HeartSubType.BONE]: "Bone Heart", // 11
|
|
19
|
+
[HeartSubType.ROTTEN]: "Rotten Heart", // 12
|
|
20
|
+
} as const satisfies Record<HeartSubType, string>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KeySubType } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_KEY_NAME = "Unknown";
|
|
4
|
+
|
|
5
|
+
/** Taken from "entities2.xml". */
|
|
6
|
+
export const KEY_NAMES = {
|
|
7
|
+
[KeySubType.NULL]: DEFAULT_KEY_NAME, // 0
|
|
8
|
+
[KeySubType.NORMAL]: "Key", // 1
|
|
9
|
+
[KeySubType.GOLDEN]: "Golden Key", // 2
|
|
10
|
+
[KeySubType.DOUBLE_PACK]: "Key Ring", // 3
|
|
11
|
+
[KeySubType.CHARGED]: "Charged Key", // 4
|
|
12
|
+
} as const satisfies Record<KeySubType, string>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { LanguageAbbreviation } from "isaac-typescript-definitions";
|
|
2
2
|
|
|
3
3
|
export const LANGUAGE_NAMES = {
|
|
4
|
-
[LanguageAbbreviation.ENGLISH]: "English",
|
|
5
|
-
[LanguageAbbreviation.JAPANESE]: "Japanese",
|
|
6
|
-
[LanguageAbbreviation.KOREAN]: "Korean",
|
|
7
|
-
[LanguageAbbreviation.CHINESE_SIMPLE]: "Chinese (Simple)",
|
|
8
|
-
[LanguageAbbreviation.RUSSIAN]: "Russian",
|
|
9
|
-
[LanguageAbbreviation.GERMAN]: "German",
|
|
10
|
-
[LanguageAbbreviation.SPANISH]: "Spanish",
|
|
4
|
+
[LanguageAbbreviation.ENGLISH]: "English", // "en"
|
|
5
|
+
[LanguageAbbreviation.JAPANESE]: "Japanese", // "jp"
|
|
6
|
+
[LanguageAbbreviation.KOREAN]: "Korean", // "kr"
|
|
7
|
+
[LanguageAbbreviation.CHINESE_SIMPLE]: "Chinese (Simple)", // "zh"
|
|
8
|
+
[LanguageAbbreviation.RUSSIAN]: "Russian", // "ru"
|
|
9
|
+
[LanguageAbbreviation.GERMAN]: "German", // "de"
|
|
10
|
+
[LanguageAbbreviation.SPANISH]: "Spanish", // "es"
|
|
11
11
|
} as const satisfies Record<LanguageAbbreviation, string>;
|
|
@@ -8,7 +8,8 @@ import { LevelStage, StageType } from "isaac-typescript-definitions";
|
|
|
8
8
|
*
|
|
9
9
|
* Note that this contains "Blue Womb" instead of "???" for stage 9.
|
|
10
10
|
*/
|
|
11
|
-
export const
|
|
11
|
+
export const LEVEL_NAMES = {
|
|
12
|
+
// 1
|
|
12
13
|
[LevelStage.BASEMENT_1]: {
|
|
13
14
|
[StageType.ORIGINAL]: "Basement 1",
|
|
14
15
|
[StageType.WRATH_OF_THE_LAMB]: "Cellar 1",
|
|
@@ -17,6 +18,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
17
18
|
[StageType.REPENTANCE]: "Downpour 1",
|
|
18
19
|
[StageType.REPENTANCE_B]: "Dross 1",
|
|
19
20
|
},
|
|
21
|
+
|
|
22
|
+
// 2
|
|
20
23
|
[LevelStage.BASEMENT_2]: {
|
|
21
24
|
[StageType.ORIGINAL]: "Basement 2",
|
|
22
25
|
[StageType.WRATH_OF_THE_LAMB]: "Cellar 2",
|
|
@@ -25,6 +28,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
25
28
|
[StageType.REPENTANCE]: "Downpour 2",
|
|
26
29
|
[StageType.REPENTANCE_B]: "Dross 2",
|
|
27
30
|
},
|
|
31
|
+
|
|
32
|
+
// 3
|
|
28
33
|
[LevelStage.CAVES_1]: {
|
|
29
34
|
[StageType.ORIGINAL]: "Caves 1",
|
|
30
35
|
[StageType.WRATH_OF_THE_LAMB]: "Catacombs 1",
|
|
@@ -33,6 +38,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
33
38
|
[StageType.REPENTANCE]: "Mines 1",
|
|
34
39
|
[StageType.REPENTANCE_B]: "Ashpit 1",
|
|
35
40
|
},
|
|
41
|
+
|
|
42
|
+
// 4
|
|
36
43
|
[LevelStage.CAVES_2]: {
|
|
37
44
|
[StageType.ORIGINAL]: "Caves 2",
|
|
38
45
|
[StageType.WRATH_OF_THE_LAMB]: "Catacombs 2",
|
|
@@ -41,6 +48,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
41
48
|
[StageType.REPENTANCE]: "Mines 2",
|
|
42
49
|
[StageType.REPENTANCE_B]: "Ashpit 2",
|
|
43
50
|
},
|
|
51
|
+
|
|
52
|
+
// 5
|
|
44
53
|
[LevelStage.DEPTHS_1]: {
|
|
45
54
|
[StageType.ORIGINAL]: "Depths 1",
|
|
46
55
|
[StageType.WRATH_OF_THE_LAMB]: "Necropolis 1",
|
|
@@ -49,6 +58,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
49
58
|
[StageType.REPENTANCE]: "Mausoleum 1",
|
|
50
59
|
[StageType.REPENTANCE_B]: "Gehenna 1",
|
|
51
60
|
},
|
|
61
|
+
|
|
62
|
+
// 6
|
|
52
63
|
[LevelStage.DEPTHS_2]: {
|
|
53
64
|
[StageType.ORIGINAL]: "Depths 2",
|
|
54
65
|
[StageType.WRATH_OF_THE_LAMB]: "Necropolis 2",
|
|
@@ -57,6 +68,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
57
68
|
[StageType.REPENTANCE]: "Mausoleum 2",
|
|
58
69
|
[StageType.REPENTANCE_B]: "Gehenna 2",
|
|
59
70
|
},
|
|
71
|
+
|
|
72
|
+
// 7
|
|
60
73
|
[LevelStage.WOMB_1]: {
|
|
61
74
|
[StageType.ORIGINAL]: "Womb 1",
|
|
62
75
|
[StageType.WRATH_OF_THE_LAMB]: "Utero 1",
|
|
@@ -65,6 +78,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
65
78
|
[StageType.REPENTANCE]: "Corpse 1",
|
|
66
79
|
[StageType.REPENTANCE_B]: "Mortis 1",
|
|
67
80
|
},
|
|
81
|
+
|
|
82
|
+
// 8
|
|
68
83
|
[LevelStage.WOMB_2]: {
|
|
69
84
|
[StageType.ORIGINAL]: "Womb 2",
|
|
70
85
|
[StageType.WRATH_OF_THE_LAMB]: "Utero 2",
|
|
@@ -73,6 +88,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
73
88
|
[StageType.REPENTANCE]: "Corpse 2",
|
|
74
89
|
[StageType.REPENTANCE_B]: "Mortis 2",
|
|
75
90
|
},
|
|
91
|
+
|
|
92
|
+
// 9
|
|
76
93
|
[LevelStage.BLUE_WOMB]: {
|
|
77
94
|
[StageType.ORIGINAL]: "Blue Womb",
|
|
78
95
|
[StageType.WRATH_OF_THE_LAMB]: "Blue Womb",
|
|
@@ -81,6 +98,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
81
98
|
[StageType.REPENTANCE]: "Blue Womb",
|
|
82
99
|
[StageType.REPENTANCE_B]: "Blue Womb",
|
|
83
100
|
},
|
|
101
|
+
|
|
102
|
+
// 10
|
|
84
103
|
[LevelStage.SHEOL_CATHEDRAL]: {
|
|
85
104
|
[StageType.ORIGINAL]: "Sheol",
|
|
86
105
|
[StageType.WRATH_OF_THE_LAMB]: "Cathedral",
|
|
@@ -89,6 +108,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
89
108
|
[StageType.REPENTANCE]: "Undefined",
|
|
90
109
|
[StageType.REPENTANCE_B]: "Undefined",
|
|
91
110
|
},
|
|
111
|
+
|
|
112
|
+
// 11
|
|
92
113
|
[LevelStage.DARK_ROOM_CHEST]: {
|
|
93
114
|
[StageType.ORIGINAL]: "Dark Room",
|
|
94
115
|
[StageType.WRATH_OF_THE_LAMB]: "The Chest",
|
|
@@ -97,6 +118,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
97
118
|
[StageType.REPENTANCE]: "Undefined",
|
|
98
119
|
[StageType.REPENTANCE_B]: "Undefined",
|
|
99
120
|
},
|
|
121
|
+
|
|
122
|
+
// 12
|
|
100
123
|
[LevelStage.THE_VOID]: {
|
|
101
124
|
[StageType.ORIGINAL]: "The Void",
|
|
102
125
|
[StageType.WRATH_OF_THE_LAMB]: "The Void",
|
|
@@ -105,6 +128,8 @@ export const ENGLISH_LEVEL_NAMES = {
|
|
|
105
128
|
[StageType.REPENTANCE]: "The Void",
|
|
106
129
|
[StageType.REPENTANCE_B]: "The Void",
|
|
107
130
|
},
|
|
131
|
+
|
|
132
|
+
// 13
|
|
108
133
|
[LevelStage.HOME]: {
|
|
109
134
|
[StageType.ORIGINAL]: "Home",
|
|
110
135
|
[StageType.WRATH_OF_THE_LAMB]: "Home",
|