isaacscript-common 51.2.1 → 51.2.2
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 +15 -3
- package/dist/isaacscript-common.lua +123 -101
- package/dist/src/arrays/cachedEnumValues.d.ts +2 -1
- package/dist/src/arrays/cachedEnumValues.d.ts.map +1 -1
- package/dist/src/arrays/cachedEnumValues.lua +2 -0
- package/dist/src/functions/bosses.d.ts +6 -3
- package/dist/src/functions/bosses.d.ts.map +1 -1
- package/dist/src/functions/bosses.lua +16 -25
- package/dist/src/functions/input.lua +3 -3
- package/dist/src/functions/pills.lua +6 -6
- package/dist/src/functions/roomShapeWalls.d.ts +9 -1
- package/dist/src/functions/roomShapeWalls.d.ts.map +1 -1
- package/dist/src/functions/roomShapeWalls.lua +34 -25
- package/dist/src/maps/PHDPillConversionsMap.d.ts +3 -0
- package/dist/src/maps/PHDPillConversionsMap.d.ts.map +1 -0
- package/dist/src/maps/{PHDPillConversions.lua → PHDPillConversionsMap.lua} +1 -1
- package/dist/src/maps/collectibleNameToTypeMap.d.ts +1 -2
- package/dist/src/maps/collectibleNameToTypeMap.d.ts.map +1 -1
- package/dist/src/maps/collectibleNameToTypeMap.lua +20 -12
- package/dist/src/maps/entityTypeVariantToBossIDMap.d.ts +3 -0
- package/dist/src/maps/entityTypeVariantToBossIDMap.d.ts.map +1 -0
- package/dist/src/maps/entityTypeVariantToBossIDMap.lua +26 -0
- package/dist/src/maps/falsePHDPillConversionsMap.d.ts +3 -0
- package/dist/src/maps/falsePHDPillConversionsMap.d.ts.map +1 -0
- package/dist/src/maps/{falsePHDPillConversions.lua → falsePHDPillConversionsMap.lua} +1 -1
- package/dist/src/maps/keyboardToStringMap.d.ts +4 -0
- package/dist/src/maps/keyboardToStringMap.d.ts.map +1 -0
- package/dist/src/maps/{keyboardToString.lua → keyboardToStringMap.lua} +1 -1
- package/dist/src/sets/bossSets.d.ts.map +1 -1
- package/dist/src/sets/bossSets.lua +19 -27
- package/package.json +1 -1
- package/src/arrays/cachedEnumValues.ts +3 -0
- package/src/functions/bosses.ts +8 -19
- package/src/functions/input.ts +2 -2
- package/src/functions/pills.ts +4 -4
- package/src/functions/roomShapeWalls.ts +79 -75
- package/src/maps/PHDPillConversionsMap.ts +23 -0
- package/src/maps/collectibleNameToTypeMap.ts +9 -14
- package/src/maps/entityTypeVariantToBossIDMap.ts +14 -0
- package/src/maps/{falsePHDPillConversions.ts → falsePHDPillConversionsMap.ts} +1 -1
- package/src/maps/{keyboardToString.ts → keyboardToStringMap.ts} +1 -1
- package/src/sets/bossSets.ts +9 -28
- package/dist/src/maps/PHDPillConversions.d.ts +0 -3
- package/dist/src/maps/PHDPillConversions.d.ts.map +0 -1
- package/dist/src/maps/falsePHDPillConversions.d.ts +0 -3
- package/dist/src/maps/falsePHDPillConversions.d.ts.map +0 -1
- package/dist/src/maps/keyboardToString.d.ts +0 -4
- package/dist/src/maps/keyboardToString.d.ts.map +0 -1
- package/src/maps/PHDPillConversions.ts +0 -21
package/src/functions/input.ts
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
Keyboard,
|
|
6
6
|
} from "isaac-typescript-definitions";
|
|
7
7
|
import { CONTROLLER_INDEX_VALUES } from "../arrays/cachedEnumValues";
|
|
8
|
-
import {
|
|
8
|
+
import { KEYBOARD_TO_STRING_MAP } from "../maps/keyboardToStringMap";
|
|
9
9
|
import { ReadonlySet } from "../types/ReadonlySet";
|
|
10
10
|
import { trimPrefix } from "./string";
|
|
11
11
|
|
|
@@ -233,7 +233,7 @@ export function keyboardToString(
|
|
|
233
233
|
keyboard: Keyboard,
|
|
234
234
|
uppercase: boolean,
|
|
235
235
|
): string | undefined {
|
|
236
|
-
const tuple =
|
|
236
|
+
const tuple = KEYBOARD_TO_STRING_MAP.get(keyboard);
|
|
237
237
|
if (tuple === undefined) {
|
|
238
238
|
return undefined;
|
|
239
239
|
}
|
package/src/functions/pills.ts
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
LAST_NORMAL_PILL_COLOR,
|
|
14
14
|
LAST_VANILLA_PILL_EFFECT,
|
|
15
15
|
} from "../core/constantsFirstLast";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { PHD_PILL_CONVERSIONS_MAP } from "../maps/PHDPillConversionsMap";
|
|
17
|
+
import { FALSE_PHD_PILL_CONVERSIONS_MAP } from "../maps/falsePHDPillConversionsMap";
|
|
18
18
|
import {
|
|
19
19
|
DEFAULT_PILL_EFFECT_CLASS,
|
|
20
20
|
PILL_EFFECT_CLASSES,
|
|
@@ -52,7 +52,7 @@ export function getAllPillColors(): PillColor[] {
|
|
|
52
52
|
* is not altered by False PHD, then the same pill effect will be returned.
|
|
53
53
|
*/
|
|
54
54
|
export function getFalsePHDPillEffect(pillEffect: PillEffect): PillEffect {
|
|
55
|
-
const convertedPillEffect =
|
|
55
|
+
const convertedPillEffect = FALSE_PHD_PILL_CONVERSIONS_MAP.get(pillEffect);
|
|
56
56
|
return convertedPillEffect ?? pillEffect;
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -96,7 +96,7 @@ export function getNormalPillColors(): PillColor[] {
|
|
|
96
96
|
* altered by PHD, then the same pill effect will be returned.
|
|
97
97
|
*/
|
|
98
98
|
export function getPHDPillEffect(pillEffect: PillEffect): PillEffect {
|
|
99
|
-
const convertedPillEffect =
|
|
99
|
+
const convertedPillEffect = PHD_PILL_CONVERSIONS_MAP.get(pillEffect);
|
|
100
100
|
return convertedPillEffect ?? pillEffect;
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -3,27 +3,88 @@ import { ROOM_SHAPE_VALUES } from "../arrays/cachedEnumValues";
|
|
|
3
3
|
import { game } from "../core/cachedClasses";
|
|
4
4
|
import { CornerType } from "../enums/CornerType";
|
|
5
5
|
import type { Corner } from "../interfaces/Corner";
|
|
6
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
6
7
|
import { ReadonlySet } from "../types/ReadonlySet";
|
|
7
8
|
import { getGridIndexesBetween } from "./gridIndex";
|
|
8
9
|
import { getRoomShapeCorners, isLRoomShape } from "./roomShape";
|
|
9
10
|
import { inBossRoomOf, inHomeCloset } from "./rooms";
|
|
10
11
|
import { assertDefined } from "./utils";
|
|
11
12
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const ROOM_SHAPE_TO_WALL_GRID_INDEX_MAP = new ReadonlyMap(
|
|
14
|
+
ROOM_SHAPE_VALUES.map((roomShape) => [
|
|
15
|
+
roomShape,
|
|
16
|
+
getVanillaWallGridIndexSetForRoomShape(roomShape),
|
|
17
|
+
]),
|
|
18
|
+
);
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
/** The Home closet is is 9x3, which is different from `RoomShape.IH` (which is 13x3). */
|
|
21
|
+
const HOME_CLOSET_CORNERS = [
|
|
22
|
+
{
|
|
23
|
+
type: CornerType.TOP_LEFT,
|
|
24
|
+
gridIndex: 30,
|
|
25
|
+
position: Vector(60, 220),
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: CornerType.TOP_RIGHT,
|
|
29
|
+
gridIndex: 38,
|
|
30
|
+
position: Vector(340, 220),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
type: CornerType.BOTTOM_LEFT,
|
|
34
|
+
gridIndex: 90,
|
|
35
|
+
position: Vector(60, 340),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
type: CornerType.BOTTOM_RIGHT,
|
|
39
|
+
gridIndex: 98,
|
|
40
|
+
position: Vector(340, 340),
|
|
41
|
+
},
|
|
42
|
+
] as const;
|
|
43
|
+
|
|
44
|
+
const HOME_CLOSET_CORNERS_SET = getVanillaWallGridIndexSetForRectangleRoomShape(
|
|
45
|
+
RoomShape.IH,
|
|
46
|
+
HOME_CLOSET_CORNERS,
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The Mother Boss Room is 15x11, which is different from `RoomShape.SHAPE_1x2` (which is 15x16).
|
|
51
|
+
*/
|
|
52
|
+
const MOTHER_ROOM_CORNERS = [
|
|
53
|
+
{
|
|
54
|
+
type: CornerType.TOP_LEFT,
|
|
55
|
+
gridIndex: 0,
|
|
56
|
+
position: Vector(60, 140),
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: CornerType.TOP_RIGHT,
|
|
60
|
+
gridIndex: 14,
|
|
61
|
+
position: Vector(580, 140),
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: CornerType.BOTTOM_LEFT,
|
|
65
|
+
gridIndex: 150,
|
|
66
|
+
position: Vector(60, 500),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: CornerType.BOTTOM_RIGHT,
|
|
70
|
+
gridIndex: 164,
|
|
71
|
+
position: Vector(580, 500),
|
|
72
|
+
},
|
|
73
|
+
] as const;
|
|
22
74
|
|
|
23
|
-
|
|
24
|
-
|
|
75
|
+
const MOTHER_ROOM_CORNERS_SET = getVanillaWallGridIndexSetForRectangleRoomShape(
|
|
76
|
+
RoomShape.SHAPE_1x2,
|
|
77
|
+
MOTHER_ROOM_CORNERS,
|
|
78
|
+
);
|
|
25
79
|
|
|
26
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Helper function to get the set of grid indexes that represent where the walls are supposed to be
|
|
82
|
+
* in a given room shape.
|
|
83
|
+
*
|
|
84
|
+
* This function only works reliably in vanilla rooms because in a modded room, it is possible to
|
|
85
|
+
* place walls in a non-standard location.
|
|
86
|
+
*/
|
|
87
|
+
export function getVanillaWallGridIndexSetForRoomShape(
|
|
27
88
|
roomShape: RoomShape,
|
|
28
89
|
): ReadonlySet<int> {
|
|
29
90
|
const corners = getRoomShapeCorners(roomShape);
|
|
@@ -201,7 +262,10 @@ function getVanillaWallGridIndexSetForRoomShape(
|
|
|
201
262
|
}
|
|
202
263
|
|
|
203
264
|
default: {
|
|
204
|
-
return
|
|
265
|
+
return getVanillaWallGridIndexSetForRectangleRoomShape(
|
|
266
|
+
roomShape,
|
|
267
|
+
corners,
|
|
268
|
+
);
|
|
205
269
|
}
|
|
206
270
|
}
|
|
207
271
|
}
|
|
@@ -210,7 +274,7 @@ function getVanillaWallGridIndexSetForRoomShape(
|
|
|
210
274
|
* Providing the room shape is necessary so that the `getGridIndexesBetween` function can use the
|
|
211
275
|
* corresponding grid width.
|
|
212
276
|
*/
|
|
213
|
-
function
|
|
277
|
+
function getVanillaWallGridIndexSetForRectangleRoomShape(
|
|
214
278
|
roomShape: RoomShape,
|
|
215
279
|
corners: readonly Corner[],
|
|
216
280
|
): ReadonlySet<int> {
|
|
@@ -250,66 +314,6 @@ function getWallGridIndexSetForRectangleRoomShape(
|
|
|
250
314
|
]);
|
|
251
315
|
}
|
|
252
316
|
|
|
253
|
-
/** The Home closet is is 9x3, which is different from `RoomShape.IH` (which is 13x3). */
|
|
254
|
-
const HOME_CLOSET_CORNERS = [
|
|
255
|
-
{
|
|
256
|
-
type: CornerType.TOP_LEFT,
|
|
257
|
-
gridIndex: 30,
|
|
258
|
-
position: Vector(60, 220),
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
type: CornerType.TOP_RIGHT,
|
|
262
|
-
gridIndex: 38,
|
|
263
|
-
position: Vector(340, 220),
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
type: CornerType.BOTTOM_LEFT,
|
|
267
|
-
gridIndex: 90,
|
|
268
|
-
position: Vector(60, 340),
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
type: CornerType.BOTTOM_RIGHT,
|
|
272
|
-
gridIndex: 98,
|
|
273
|
-
position: Vector(340, 340),
|
|
274
|
-
},
|
|
275
|
-
] as const;
|
|
276
|
-
|
|
277
|
-
const HOME_CLOSET_CORNERS_SET = getWallGridIndexSetForRectangleRoomShape(
|
|
278
|
-
RoomShape.IH,
|
|
279
|
-
HOME_CLOSET_CORNERS,
|
|
280
|
-
);
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* The Mother Boss Room is 15x11, which is different from `RoomShape.SHAPE_1x2` (which is 15x16).
|
|
284
|
-
*/
|
|
285
|
-
const MOTHER_ROOM_CORNERS = [
|
|
286
|
-
{
|
|
287
|
-
type: CornerType.TOP_LEFT,
|
|
288
|
-
gridIndex: 0,
|
|
289
|
-
position: Vector(60, 140),
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
type: CornerType.TOP_RIGHT,
|
|
293
|
-
gridIndex: 14,
|
|
294
|
-
position: Vector(580, 140),
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
type: CornerType.BOTTOM_LEFT,
|
|
298
|
-
gridIndex: 150,
|
|
299
|
-
position: Vector(60, 500),
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
type: CornerType.BOTTOM_RIGHT,
|
|
303
|
-
gridIndex: 164,
|
|
304
|
-
position: Vector(580, 500),
|
|
305
|
-
},
|
|
306
|
-
] as const;
|
|
307
|
-
|
|
308
|
-
const MOTHER_ROOM_CORNERS_SET = getWallGridIndexSetForRectangleRoomShape(
|
|
309
|
-
RoomShape.SHAPE_1x2,
|
|
310
|
-
MOTHER_ROOM_CORNERS,
|
|
311
|
-
);
|
|
312
|
-
|
|
313
317
|
/**
|
|
314
318
|
* Helper function to determine if a given grid index should have a wall generated by the vanilla
|
|
315
319
|
* game. This is useful as a mechanism to distinguish between real walls and custom walls spawned by
|
|
@@ -329,7 +333,7 @@ export function isVanillaWallGridIndex(gridIndex: int): boolean {
|
|
|
329
333
|
} else if (inBossRoomOf(BossID.MOTHER)) {
|
|
330
334
|
wallGridIndexSet = MOTHER_ROOM_CORNERS_SET;
|
|
331
335
|
} else {
|
|
332
|
-
wallGridIndexSet =
|
|
336
|
+
wallGridIndexSet = ROOM_SHAPE_TO_WALL_GRID_INDEX_MAP.get(roomShape);
|
|
333
337
|
assertDefined(
|
|
334
338
|
wallGridIndexSet,
|
|
335
339
|
`Failed to find the wall grid index set for: RoomShape.${RoomShape[roomShape]} (${roomShape})`,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { PillEffect } from "isaac-typescript-definitions";
|
|
2
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
|
+
|
|
4
|
+
export const PHD_PILL_CONVERSIONS_MAP = new ReadonlyMap<PillEffect, PillEffect>(
|
|
5
|
+
[
|
|
6
|
+
[PillEffect.BAD_TRIP, PillEffect.BALLS_OF_STEEL], // 1
|
|
7
|
+
[PillEffect.HEALTH_DOWN, PillEffect.HEALTH_UP], // 6
|
|
8
|
+
[PillEffect.RANGE_DOWN, PillEffect.RANGE_UP], // 11
|
|
9
|
+
[PillEffect.SPEED_DOWN, PillEffect.SPEED_UP], // 13
|
|
10
|
+
[PillEffect.TEARS_DOWN, PillEffect.TEARS_UP], // 15
|
|
11
|
+
[PillEffect.LUCK_DOWN, PillEffect.LUCK_UP], // 17
|
|
12
|
+
[PillEffect.PARALYSIS, PillEffect.PHEROMONES], // 22
|
|
13
|
+
[PillEffect.AMNESIA, PillEffect.I_CAN_SEE_FOREVER], // 25
|
|
14
|
+
[PillEffect.R_U_A_WIZARD, PillEffect.POWER], // 27
|
|
15
|
+
[PillEffect.ADDICTED, PillEffect.PERCS], // 29
|
|
16
|
+
[PillEffect.QUESTION_MARKS, PillEffect.TELEPILLS], // 31
|
|
17
|
+
[PillEffect.RETRO_VISION, PillEffect.I_CAN_SEE_FOREVER], // 37
|
|
18
|
+
[PillEffect.X_LAX, PillEffect.SOMETHINGS_WRONG], // 39
|
|
19
|
+
[PillEffect.IM_EXCITED, PillEffect.IM_DROWSY], // 42
|
|
20
|
+
[PillEffect.HORF, PillEffect.GULP], // 44
|
|
21
|
+
[PillEffect.SHOT_SPEED_DOWN, PillEffect.SHOT_SPEED_UP], // 47
|
|
22
|
+
],
|
|
23
|
+
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CollectibleType } from "isaac-typescript-definitions";
|
|
2
1
|
import { removeNonAlphanumericCharacters } from "../functions/string";
|
|
2
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
3
|
import { COLLECTIBLE_TYPE_TO_NAME_MAP } from "./collectibleTypeToNameMap";
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -7,16 +7,11 @@ import { COLLECTIBLE_TYPE_TO_NAME_MAP } from "./collectibleTypeToNameMap";
|
|
|
7
7
|
*
|
|
8
8
|
* For a mapping of `CollectibleType` to name, see `COLLECTIBLE_TYPE_TO_NAME_MAP`.
|
|
9
9
|
*/
|
|
10
|
-
export const COLLECTIBLE_NAME_TO_TYPE_MAP
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
collectibleNameToTypeMap.set(simpleString, collectibleType);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return collectibleNameToTypeMap;
|
|
22
|
-
})();
|
|
10
|
+
export const COLLECTIBLE_NAME_TO_TYPE_MAP = new ReadonlyMap(
|
|
11
|
+
[...COLLECTIBLE_TYPE_TO_NAME_MAP.entries()].map(
|
|
12
|
+
([collectibleType, collectibleName]) => [
|
|
13
|
+
removeNonAlphanumericCharacters(collectibleName),
|
|
14
|
+
collectibleType,
|
|
15
|
+
],
|
|
16
|
+
),
|
|
17
|
+
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BossID } from "isaac-typescript-definitions";
|
|
2
|
+
import { BOSS_ID_TO_ENTITY_TYPE_VARIANT } from "../objects/bossIDToEntityTypeVariant";
|
|
3
|
+
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
4
|
+
|
|
5
|
+
export const ENTITY_TYPE_VARIANT_TO_BOSS_ID_MAP = new ReadonlyMap(
|
|
6
|
+
[...Object.entries(BOSS_ID_TO_ENTITY_TYPE_VARIANT)].map(
|
|
7
|
+
([bossIDRaw, entityTypeVariant]) => {
|
|
8
|
+
const bossID = bossIDRaw as unknown as BossID;
|
|
9
|
+
const [entityType, variant] = entityTypeVariant;
|
|
10
|
+
const entityTypeVariantString = `${entityType}.${variant}`;
|
|
11
|
+
return [entityTypeVariantString, bossID];
|
|
12
|
+
},
|
|
13
|
+
),
|
|
14
|
+
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PillEffect } from "isaac-typescript-definitions";
|
|
2
2
|
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
3
|
|
|
4
|
-
export const
|
|
4
|
+
export const FALSE_PHD_PILL_CONVERSIONS_MAP = new ReadonlyMap<
|
|
5
5
|
PillEffect,
|
|
6
6
|
PillEffect
|
|
7
7
|
>([
|
|
@@ -2,7 +2,7 @@ import { Keyboard } from "isaac-typescript-definitions";
|
|
|
2
2
|
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
3
|
|
|
4
4
|
/** Maps each keyboard enum member to its corresponding lowercase and uppercase characters. */
|
|
5
|
-
export const
|
|
5
|
+
export const KEYBOARD_TO_STRING_MAP = new ReadonlyMap<
|
|
6
6
|
Keyboard,
|
|
7
7
|
readonly [lowercaseCharacter: string, uppercaseCharacter: string]
|
|
8
8
|
>([
|
package/src/sets/bossSets.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BossID, LevelStage, StageType } from "isaac-typescript-definitions";
|
|
2
|
-
import {
|
|
2
|
+
import { BOSS_IDS } from "../arrays/cachedEnumValues";
|
|
3
|
+
import { combineSets } from "../functions/set";
|
|
3
4
|
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
4
5
|
import { ReadonlySet } from "../types/ReadonlySet";
|
|
5
|
-
import { STORY_BOSSES_SET } from "./storyBossesSet";
|
|
6
6
|
|
|
7
7
|
// The "bosspools.xml" file does not actually correspond to the real boss pools, so these sets were
|
|
8
8
|
// determined through experimentation on v1.7.8a.
|
|
@@ -398,13 +398,12 @@ const CORPSE_BOSSES_SET = new ReadonlySet<BossID>([
|
|
|
398
398
|
BossID.MOTHER, // 88
|
|
399
399
|
]);
|
|
400
400
|
|
|
401
|
-
/** The set of unique bosses for
|
|
401
|
+
/** The set of unique bosses for Womb, Utero, and so on. */
|
|
402
402
|
const ALL_WOMB_BOSSES_SET: ReadonlySet<BossID> = combineSets(
|
|
403
403
|
WOMB_BOSSES_SET,
|
|
404
404
|
UTERO_BOSSES_SET,
|
|
405
405
|
SCARRED_WOMB_BOSSES_SET,
|
|
406
|
-
|
|
407
|
-
GEHENNA_BOSSES_SET,
|
|
406
|
+
CORPSE_BOSSES_SET,
|
|
408
407
|
);
|
|
409
408
|
|
|
410
409
|
const WOMB_STAGE_TYPE_TO_BOSS_SET_MAP = new ReadonlyMap<
|
|
@@ -530,16 +529,8 @@ export const STAGE_TO_COMBINED_BOSS_SET_MAP = new ReadonlyMap<
|
|
|
530
529
|
[LevelStage.HOME, HOME_BOSSES_SET], // 13
|
|
531
530
|
]);
|
|
532
531
|
|
|
533
|
-
export const ALL_BOSSES_SET
|
|
534
|
-
|
|
535
|
-
ALL_CAVES_BOSSES_SET,
|
|
536
|
-
ALL_DEPTHS_BOSSES_SET,
|
|
537
|
-
ALL_WOMB_BOSSES_SET,
|
|
538
|
-
BLUE_WOMB_BOSSES_SET,
|
|
539
|
-
ALL_STAGE_10_BOSSES_SET,
|
|
540
|
-
ALL_STAGE_11_BOSSES_SET,
|
|
541
|
-
VOID_BOSSES_SET,
|
|
542
|
-
HOME_BOSSES_SET,
|
|
532
|
+
export const ALL_BOSSES_SET = new ReadonlySet<BossID>(
|
|
533
|
+
BOSS_IDS.filter((bossID) => bossID === BossID.RAGLICH),
|
|
543
534
|
);
|
|
544
535
|
|
|
545
536
|
const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
@@ -549,7 +540,6 @@ const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
|
549
540
|
BossID.ISAAC, // 39
|
|
550
541
|
BossID.LAMB, // 54
|
|
551
542
|
BossID.MEGA_SATAN, // 55
|
|
552
|
-
// Mega Satan 2 does not have a dedicated boss room.
|
|
553
543
|
BossID.ULTRA_GREED, // 62
|
|
554
544
|
BossID.HUSH, // 63
|
|
555
545
|
BossID.DELIRIUM, // 70
|
|
@@ -560,15 +550,6 @@ const STORY_BOSS_IDS_SET = new ReadonlySet([
|
|
|
560
550
|
BossID.BEAST, // 100
|
|
561
551
|
]);
|
|
562
552
|
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
export const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET: ReadonlySet<BossID> =
|
|
569
|
-
(() => {
|
|
570
|
-
const allBossesSet = copySet(ALL_BOSSES_SET);
|
|
571
|
-
deleteSetsFromSet(allBossesSet, STORY_BOSS_IDS_SET);
|
|
572
|
-
|
|
573
|
-
return allBossesSet;
|
|
574
|
-
})();
|
|
553
|
+
export const ALL_BOSSES_EXCLUDING_STORY_BOSSES_SET = new ReadonlySet(
|
|
554
|
+
[...ALL_BOSSES_SET].filter((bossID) => !STORY_BOSS_IDS_SET.has(bossID)),
|
|
555
|
+
);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PHDPillConversions.d.ts","sourceRoot":"","sources":["../../../src/maps/PHDPillConversions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,oBAAoB,qCAiB/B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"falsePHDPillConversions.d.ts","sourceRoot":"","sources":["../../../src/maps/falsePHDPillConversions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,eAAO,MAAM,0BAA0B,qCAkCrC,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Keyboard } from "isaac-typescript-definitions";
|
|
2
|
-
/** Maps each keyboard enum member to its corresponding lowercase and uppercase characters. */
|
|
3
|
-
export declare const KEYBOARD_TO_STRING: ReadonlyMap<Keyboard, readonly [lowercaseCharacter: string, uppercaseCharacter: string]>;
|
|
4
|
-
//# sourceMappingURL=keyboardToString.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keyboardToString.d.ts","sourceRoot":"","sources":["../../../src/maps/keyboardToString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGxD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,0FAyE7B,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PillEffect } from "isaac-typescript-definitions";
|
|
2
|
-
import { ReadonlyMap } from "../types/ReadonlyMap";
|
|
3
|
-
|
|
4
|
-
export const PHD_PILL_CONVERSIONS = new ReadonlyMap<PillEffect, PillEffect>([
|
|
5
|
-
[PillEffect.BAD_TRIP, PillEffect.BALLS_OF_STEEL], // 1
|
|
6
|
-
[PillEffect.HEALTH_DOWN, PillEffect.HEALTH_UP], // 6
|
|
7
|
-
[PillEffect.RANGE_DOWN, PillEffect.RANGE_UP], // 11
|
|
8
|
-
[PillEffect.SPEED_DOWN, PillEffect.SPEED_UP], // 13
|
|
9
|
-
[PillEffect.TEARS_DOWN, PillEffect.TEARS_UP], // 15
|
|
10
|
-
[PillEffect.LUCK_DOWN, PillEffect.LUCK_UP], // 17
|
|
11
|
-
[PillEffect.PARALYSIS, PillEffect.PHEROMONES], // 22
|
|
12
|
-
[PillEffect.AMNESIA, PillEffect.I_CAN_SEE_FOREVER], // 25
|
|
13
|
-
[PillEffect.R_U_A_WIZARD, PillEffect.POWER], // 27
|
|
14
|
-
[PillEffect.ADDICTED, PillEffect.PERCS], // 29
|
|
15
|
-
[PillEffect.QUESTION_MARKS, PillEffect.TELEPILLS], // 31
|
|
16
|
-
[PillEffect.RETRO_VISION, PillEffect.I_CAN_SEE_FOREVER], // 37
|
|
17
|
-
[PillEffect.X_LAX, PillEffect.SOMETHINGS_WRONG], // 39
|
|
18
|
-
[PillEffect.IM_EXCITED, PillEffect.IM_DROWSY], // 42
|
|
19
|
-
[PillEffect.HORF, PillEffect.GULP], // 44
|
|
20
|
-
[PillEffect.SHOT_SPEED_DOWN, PillEffect.SHOT_SPEED_UP], // 47
|
|
21
|
-
]);
|