isaacscript-common 82.0.2 → 83.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.
- package/dist/functions/bosses.d.ts +25 -22
- package/dist/functions/bosses.d.ts.map +1 -1
- package/dist/functions/bosses.lua +36 -36
- package/dist/functions/stage.d.ts +17 -5
- package/dist/functions/stage.d.ts.map +1 -1
- package/dist/functions/stage.lua +70 -23
- package/dist/index.rollup.d.ts +46 -28
- package/dist/isaacscript-common.lua +397 -332
- package/dist/objects/stageIDNames.d.ts +40 -0
- package/dist/objects/stageIDNames.d.ts.map +1 -0
- package/dist/objects/stageIDNames.lua +41 -0
- package/dist/objects/stageToStageID.d.ts +2 -1
- package/dist/objects/stageToStageID.d.ts.map +1 -1
- package/dist/objects/stageToStageID.lua +29 -0
- package/dist/objects/versusScreenBackgroundColors.d.ts +0 -6
- package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
- package/dist/objects/versusScreenBackgroundColors.lua +2 -8
- package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -6
- package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
- package/dist/objects/versusScreenDirtSpotColors.lua +2 -8
- package/dist/sets/bossSets.d.ts +3 -3
- package/dist/sets/bossSets.d.ts.map +1 -1
- package/dist/sets/bossSets.lua +197 -119
- package/package.json +2 -2
- package/src/functions/bosses.ts +42 -38
- package/src/functions/stage.ts +62 -8
- package/src/objects/stageIDNames.ts +41 -0
- package/src/objects/stageToStageID.ts +33 -1
- package/src/objects/versusScreenBackgroundColors.ts +2 -8
- package/src/objects/versusScreenDirtSpotColors.ts +2 -8
- package/src/sets/bossSets.ts +143 -136
- package/dist/objects/levelNames.d.ts +0 -115
- package/dist/objects/levelNames.d.ts.map +0 -1
- package/dist/objects/levelNames.lua +0 -117
- package/src/objects/levelNames.ts +0 -141
package/src/functions/stage.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import type { StageID } from "isaac-typescript-definitions";
|
|
2
1
|
import {
|
|
3
2
|
GameStateFlag,
|
|
4
3
|
LevelStage,
|
|
5
4
|
RoomType,
|
|
5
|
+
StageID,
|
|
6
6
|
StageType,
|
|
7
7
|
} from "isaac-typescript-definitions";
|
|
8
8
|
import { game } from "../core/cachedClasses";
|
|
9
|
-
import { LEVEL_NAMES } from "../objects/levelNames";
|
|
10
9
|
import { ROOM_TYPE_SPECIAL_GOTO_PREFIXES } from "../objects/roomTypeSpecialGotoPrefixes";
|
|
11
|
-
import {
|
|
10
|
+
import { STAGE_ID_NAMES } from "../objects/stageIDNames";
|
|
11
|
+
import {
|
|
12
|
+
STAGE_TO_STAGE_ID,
|
|
13
|
+
STAGE_TO_STAGE_ID_GREED_MODE,
|
|
14
|
+
} from "../objects/stageToStageID";
|
|
12
15
|
import { STAGE_TYPE_SUFFIXES } from "../objects/stageTypeSuffixes";
|
|
13
16
|
import { log } from "./log";
|
|
14
17
|
import { asLevelStage } from "./types";
|
|
@@ -138,8 +141,34 @@ export function getLevelName(
|
|
|
138
141
|
stageType = level.GetStageType();
|
|
139
142
|
}
|
|
140
143
|
|
|
141
|
-
const
|
|
142
|
-
|
|
144
|
+
const stageID = getStageID(stage, stageType);
|
|
145
|
+
const stageIDName = getStageIDName(stageID);
|
|
146
|
+
|
|
147
|
+
let suffix: string;
|
|
148
|
+
switch (stage) {
|
|
149
|
+
case LevelStage.BASEMENT_1:
|
|
150
|
+
case LevelStage.CAVES_1:
|
|
151
|
+
case LevelStage.DEPTHS_1:
|
|
152
|
+
case LevelStage.WOMB_1: {
|
|
153
|
+
suffix = " 1";
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
case LevelStage.BASEMENT_2:
|
|
158
|
+
case LevelStage.CAVES_2:
|
|
159
|
+
case LevelStage.DEPTHS_2:
|
|
160
|
+
case LevelStage.WOMB_2: {
|
|
161
|
+
suffix = " 2";
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
default: {
|
|
166
|
+
suffix = "";
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return stageIDName + suffix;
|
|
143
172
|
}
|
|
144
173
|
|
|
145
174
|
/** Alias for the `Level.GetStage` method. */
|
|
@@ -150,9 +179,13 @@ export function getStage(): LevelStage {
|
|
|
150
179
|
}
|
|
151
180
|
|
|
152
181
|
/**
|
|
153
|
-
* Helper function to get the stage ID that corresponds to a particular
|
|
154
|
-
*
|
|
155
|
-
* `getRoomStageID` will not correctly return the `StageID` if the player is
|
|
182
|
+
* Helper function to get the stage ID that corresponds to a particular stage and stage type.
|
|
183
|
+
*
|
|
184
|
+
* This is useful because `getRoomStageID` will not correctly return the `StageID` if the player is
|
|
185
|
+
* in a special room.
|
|
186
|
+
*
|
|
187
|
+
* This correctly handles the case of Greed Mode. In Greed Mode, if an undefined stage and stage
|
|
188
|
+
* type combination are passed, `StageID.SPECIAL_ROOMS` (0) will be returned.
|
|
156
189
|
*
|
|
157
190
|
* @param stage Optional. If not specified, the stage corresponding to the current floor will be
|
|
158
191
|
* used.
|
|
@@ -170,10 +203,31 @@ export function getStageID(stage?: LevelStage, stageType?: StageType): StageID {
|
|
|
170
203
|
stageType = level.GetStageType();
|
|
171
204
|
}
|
|
172
205
|
|
|
206
|
+
if (game.IsGreedMode()) {
|
|
207
|
+
const stageTypeToStageID = STAGE_TO_STAGE_ID_GREED_MODE.get(stage);
|
|
208
|
+
if (stageTypeToStageID === undefined) {
|
|
209
|
+
return StageID.SPECIAL_ROOMS;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
return stageTypeToStageID[stageType];
|
|
213
|
+
}
|
|
214
|
+
|
|
173
215
|
const stageTypeToStageID = STAGE_TO_STAGE_ID[stage];
|
|
174
216
|
return stageTypeToStageID[stageType];
|
|
175
217
|
}
|
|
176
218
|
|
|
219
|
+
/**
|
|
220
|
+
* Helper function to get the English name corresponding to a stage ID. For example, "Caves".
|
|
221
|
+
*
|
|
222
|
+
* This is derived from the data in the "stages.xml" file.
|
|
223
|
+
*
|
|
224
|
+
* Note that unlike "stages.xml", Blue Womb is specified with a name of "Blue Womb" instead of
|
|
225
|
+
* "???".
|
|
226
|
+
*/
|
|
227
|
+
export function getStageIDName(stageID: StageID): string {
|
|
228
|
+
return STAGE_ID_NAMES[stageID];
|
|
229
|
+
}
|
|
230
|
+
|
|
177
231
|
/** Alias for the `Level.GetStageType` method. */
|
|
178
232
|
export function getStageType(): StageType {
|
|
179
233
|
const level = game.GetLevel();
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { StageID } from "isaac-typescript-definitions";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Derived from "stages.xml". Note that unlike "stages.xml":
|
|
5
|
+
*
|
|
6
|
+
* - `StageID.BLUE_WOMB` (13) is specified with a name of "Blue Womb" instead of "???".
|
|
7
|
+
* - `StageID.StageID.BACKWARDS` (36) is specified with a name of "The Ascent" instead of "???".
|
|
8
|
+
*/
|
|
9
|
+
export const STAGE_ID_NAMES = {
|
|
10
|
+
[StageID.SPECIAL_ROOMS]: "Special Rooms", // 0
|
|
11
|
+
[StageID.BASEMENT]: "Basement", // 1
|
|
12
|
+
[StageID.CELLAR]: "Cellar", // 2
|
|
13
|
+
[StageID.BURNING_BASEMENT]: "Burning Basement", // 3
|
|
14
|
+
[StageID.CAVES]: "Caves", // 4
|
|
15
|
+
[StageID.CATACOMBS]: "Catacombs", // 5
|
|
16
|
+
[StageID.FLOODED_CAVES]: "Flooded Caves", // 6
|
|
17
|
+
[StageID.DEPTHS]: "Depths", // 7
|
|
18
|
+
[StageID.NECROPOLIS]: "Necropolis", // 8
|
|
19
|
+
[StageID.DANK_DEPTHS]: "Dank Depths", // 9
|
|
20
|
+
[StageID.WOMB]: "Womb", // 10
|
|
21
|
+
[StageID.UTERO]: "Utero", // 11
|
|
22
|
+
[StageID.SCARRED_WOMB]: "Scarred Womb", // 12
|
|
23
|
+
[StageID.BLUE_WOMB]: "Blue Womb", // 13
|
|
24
|
+
[StageID.SHEOL]: "Sheol", // 14
|
|
25
|
+
[StageID.CATHEDRAL]: "Cathedral", // 15
|
|
26
|
+
[StageID.DARK_ROOM]: "Dark Room", // 16
|
|
27
|
+
[StageID.CHEST]: "Chest", // 17
|
|
28
|
+
[StageID.SHOP]: "The Shop", // 24
|
|
29
|
+
[StageID.ULTRA_GREED]: "Ultra Greed", // 25
|
|
30
|
+
[StageID.VOID]: "The Void", // 26
|
|
31
|
+
[StageID.DOWNPOUR]: "Downpour", // 27
|
|
32
|
+
[StageID.DROSS]: "Dross", // 28
|
|
33
|
+
[StageID.MINES]: "Mines", // 29
|
|
34
|
+
[StageID.ASHPIT]: "Ashpit", // 30
|
|
35
|
+
[StageID.MAUSOLEUM]: "Mausoleum", // 31
|
|
36
|
+
[StageID.GEHENNA]: "Gehenna", // 32
|
|
37
|
+
[StageID.CORPSE]: "Corpse", // 33
|
|
38
|
+
[StageID.MORTIS]: "Mortis", // 34
|
|
39
|
+
[StageID.HOME]: "Home", // 35
|
|
40
|
+
[StageID.BACKWARDS]: "The Ascent", // 36
|
|
41
|
+
} as const satisfies Record<StageID, string>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LevelStage, StageID, StageType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
2
3
|
|
|
3
4
|
const BASEMENT_TO_STAGE_ID = {
|
|
4
5
|
[StageType.ORIGINAL]: StageID.BASEMENT, // 0
|
|
@@ -95,4 +96,35 @@ export const STAGE_TO_STAGE_ID = {
|
|
|
95
96
|
[LevelStage.DARK_ROOM_CHEST]: DARK_ROOM_CHEST_TO_STAGE_ID, // 11
|
|
96
97
|
[LevelStage.VOID]: VOID_TO_STAGE_ID, // 12
|
|
97
98
|
[LevelStage.HOME]: HOME_TO_STAGE_ID, // 13
|
|
98
|
-
} as const satisfies Record<LevelStage,
|
|
99
|
+
} as const satisfies Record<LevelStage, Record<StageType, StageID>>;
|
|
100
|
+
|
|
101
|
+
const SHOP_TO_STAGE_ID = {
|
|
102
|
+
[StageType.ORIGINAL]: StageID.SHOP, // 0
|
|
103
|
+
[StageType.WRATH_OF_THE_LAMB]: StageID.SHOP, // 1
|
|
104
|
+
[StageType.AFTERBIRTH]: StageID.SHOP, // 2
|
|
105
|
+
[StageType.GREED_MODE]: StageID.SHOP, // 3
|
|
106
|
+
[StageType.REPENTANCE]: StageID.SHOP, // 4
|
|
107
|
+
[StageType.REPENTANCE_B]: StageID.SHOP, // 5
|
|
108
|
+
} as const satisfies Record<StageType, StageID>;
|
|
109
|
+
|
|
110
|
+
const ULTRA_GREED_TO_STAGE_ID = {
|
|
111
|
+
[StageType.ORIGINAL]: StageID.ULTRA_GREED, // 0
|
|
112
|
+
[StageType.WRATH_OF_THE_LAMB]: StageID.ULTRA_GREED, // 1
|
|
113
|
+
[StageType.AFTERBIRTH]: StageID.ULTRA_GREED, // 2
|
|
114
|
+
[StageType.GREED_MODE]: StageID.ULTRA_GREED, // 3
|
|
115
|
+
[StageType.REPENTANCE]: StageID.ULTRA_GREED, // 4
|
|
116
|
+
[StageType.REPENTANCE_B]: StageID.ULTRA_GREED, // 5
|
|
117
|
+
} as const satisfies Record<StageType, StageID>;
|
|
118
|
+
|
|
119
|
+
export const STAGE_TO_STAGE_ID_GREED_MODE = new ReadonlyMap<
|
|
120
|
+
LevelStage,
|
|
121
|
+
Record<StageType, StageID>
|
|
122
|
+
>([
|
|
123
|
+
[LevelStage.BASEMENT_GREED_MODE, BASEMENT_TO_STAGE_ID], // 1
|
|
124
|
+
[LevelStage.CAVES_GREED_MODE, CAVES_TO_STAGE_ID], // 2
|
|
125
|
+
[LevelStage.DEPTHS_GREED_MODE, DEPTHS_TO_STAGE_ID], // 3
|
|
126
|
+
[LevelStage.WOMB_GREED_MODE, WOMB_TO_STAGE_ID], // 4
|
|
127
|
+
[LevelStage.SHEOL_GREED_MODE, SHEOL_CATHEDRAL_TO_STAGE_ID], // 5
|
|
128
|
+
[LevelStage.SHOP_GREED_MODE, SHOP_TO_STAGE_ID], // 6
|
|
129
|
+
[LevelStage.ULTRA_GREED_GREED_MODE, ULTRA_GREED_TO_STAGE_ID], // 7
|
|
130
|
+
]);
|
|
@@ -30,14 +30,8 @@ export const VERSUS_SCREEN_BACKGROUND_COLORS = {
|
|
|
30
30
|
[StageID.CATHEDRAL]: newReadonlyColor(6 / 255, 13 / 255, 17 / 255), // 15
|
|
31
31
|
[StageID.DARK_ROOM]: newReadonlyColor(9 / 255, 4 / 255, 3 / 255), // 16
|
|
32
32
|
[StageID.CHEST]: newReadonlyColor(15 / 255, 9 / 255, 6 / 255), // 17
|
|
33
|
-
[StageID.
|
|
34
|
-
[StageID.
|
|
35
|
-
[StageID.CAVES_GREED_MODE]: CAVES_COLOR, // 20
|
|
36
|
-
[StageID.DEPTHS_GREED_MODE]: DEPTHS_COLOR, // 21
|
|
37
|
-
[StageID.WOMB_GREED_MODE]: WOMB_COLOR, // 22
|
|
38
|
-
[StageID.SHEOL_GREED_MODE]: SHEOL_COLOR, // 23
|
|
39
|
-
[StageID.SHOP_GREED_MODE]: DEFAULT_COLOR, // 24
|
|
40
|
-
[StageID.ULTRA_GREED_GREED_MODE]: DEFAULT_COLOR, // 25
|
|
33
|
+
[StageID.SHOP]: DEFAULT_COLOR, // 24
|
|
34
|
+
[StageID.ULTRA_GREED]: DEFAULT_COLOR, // 25
|
|
41
35
|
[StageID.VOID]: newReadonlyColor(0, 0, 0), // 26
|
|
42
36
|
[StageID.DOWNPOUR]: newReadonlyColor(29 / 255, 30 / 255, 32 / 255), // 27
|
|
43
37
|
[StageID.DROSS]: newReadonlyColor(35 / 255, 35 / 255, 29 / 255), // 28
|
|
@@ -30,14 +30,8 @@ export const VERSUS_SCREEN_DIRT_SPOT_COLORS = {
|
|
|
30
30
|
[StageID.CATHEDRAL]: newReadonlyColor(44 / 255, 100 / 255, 111 / 255), // 15
|
|
31
31
|
[StageID.DARK_ROOM]: newReadonlyColor(80 / 255, 38 / 255, 20 / 255), // 16
|
|
32
32
|
[StageID.CHEST]: newReadonlyColor(175 / 255, 108 / 255, 72 / 255), // 17
|
|
33
|
-
[StageID.
|
|
34
|
-
[StageID.
|
|
35
|
-
[StageID.CAVES_GREED_MODE]: CAVES_COLOR, // 20
|
|
36
|
-
[StageID.DEPTHS_GREED_MODE]: DEPTHS_COLOR, // 21
|
|
37
|
-
[StageID.WOMB_GREED_MODE]: WOMB_COLOR, // 22
|
|
38
|
-
[StageID.SHEOL_GREED_MODE]: SHEOL_COLOR, // 23
|
|
39
|
-
[StageID.SHOP_GREED_MODE]: DEFAULT_COLOR, // 24
|
|
40
|
-
[StageID.ULTRA_GREED_GREED_MODE]: DEFAULT_COLOR, // 25
|
|
33
|
+
[StageID.SHOP]: DEFAULT_COLOR, // 24
|
|
34
|
+
[StageID.ULTRA_GREED]: DEFAULT_COLOR, // 25
|
|
41
35
|
[StageID.VOID]: newReadonlyColor(70 / 255, 5 / 255, 5 / 255), // 26
|
|
42
36
|
[StageID.DOWNPOUR]: newReadonlyColor(149 / 255, 157 / 255, 167 / 255), // 27
|
|
43
37
|
[StageID.DROSS]: newReadonlyColor(179 / 255, 179 / 255, 143 / 255), // 28
|