isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
466 lines (465 loc) • 23.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BOSS_ID_TO_STAGE_IDS = exports.NON_STORY_BOSSES = exports.ALL_BOSSES = exports.STAGE_TO_COMBINED_BOSS_SET_MAP = exports.STAGE_ID_TO_BOSS_IDS = void 0;
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
const cachedEnumValues_1 = require("../cachedEnumValues");
const storyBosses_1 = require("../functions/storyBosses");
const ReadonlyMap_1 = require("../types/ReadonlyMap");
const ReadonlySet_1 = require("../types/ReadonlySet");
// The "bosspools.xml" file does not actually correspond to the real boss pools, so these data
// structures were determined through experimentation on v1.7.8a.
// We use sets of strings instead of tuples for these data structures because TypeScript/Lua does
// not have real tuples. If we store bosses as tuples, then we cannot do a set lookup in O(1).
/** For `StageID.BASEMENT` (1). */
const BASEMENT_BOSSES = [
isaac_typescript_definitions_1.BossID.MONSTRO, // 1
isaac_typescript_definitions_1.BossID.LARRY_JR, // 2
isaac_typescript_definitions_1.BossID.FAMINE, // 9
isaac_typescript_definitions_1.BossID.DUKE_OF_FLIES, // 13
isaac_typescript_definitions_1.BossID.GEMINI, // 17
isaac_typescript_definitions_1.BossID.STEVEN, // 20
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.DINGLE, // 44
isaac_typescript_definitions_1.BossID.GURGLING, // 56
isaac_typescript_definitions_1.BossID.LITTLE_HORN, // 60
// - `BossID.RAG_MAN` (61) was removed in Repentance.
isaac_typescript_definitions_1.BossID.DANGLE, // 64
isaac_typescript_definitions_1.BossID.TURDLING, // 65
isaac_typescript_definitions_1.BossID.BABY_PLUM, // 84 (added in Repentance)
];
/** For `StageID.CELLAR` (2). */
const CELLAR_BOSSES = [
isaac_typescript_definitions_1.BossID.FAMINE, // 9
isaac_typescript_definitions_1.BossID.DUKE_OF_FLIES, // 13
// - `BossID.FISTULA` (18) was removed in Repentance.
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.BLIGHTED_OVUM, // 32
isaac_typescript_definitions_1.BossID.WIDOW, // 34
isaac_typescript_definitions_1.BossID.PIN, // 37
isaac_typescript_definitions_1.BossID.HAUNT, // 43
isaac_typescript_definitions_1.BossID.LITTLE_HORN, // 60
isaac_typescript_definitions_1.BossID.RAG_MAN, // 61
isaac_typescript_definitions_1.BossID.BABY_PLUM, // 84 (added in Repentance)
];
/** For `StageID.BURNING_BASEMENT` (3). */
const BURNING_BASEMENT_BOSSES = [
isaac_typescript_definitions_1.BossID.MONSTRO, // 1
isaac_typescript_definitions_1.BossID.LARRY_JR, // 2
isaac_typescript_definitions_1.BossID.FAMINE, // 9
isaac_typescript_definitions_1.BossID.DUKE_OF_FLIES, // 13
isaac_typescript_definitions_1.BossID.GEMINI, // 17 (added in Repentance)
isaac_typescript_definitions_1.BossID.STEVEN, // 20 (added in Repentance)
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
// - `BossID.HAUNT` (43) was removed in Repentance.
isaac_typescript_definitions_1.BossID.DINGLE, // 44 (added in Repentance)
isaac_typescript_definitions_1.BossID.GURGLING, // 56 (added in Repentance)
isaac_typescript_definitions_1.BossID.LITTLE_HORN, // 60
isaac_typescript_definitions_1.BossID.RAG_MAN, // 61
isaac_typescript_definitions_1.BossID.DANGLE, // 64 (added in Repentance)
isaac_typescript_definitions_1.BossID.TURDLING, // 65 (added in Repentance)
isaac_typescript_definitions_1.BossID.BABY_PLUM, // 84 (added in Repentance)
];
/** For `StageID.DOWNPOUR` (27). */
const DOWNPOUR_BOSSES = [
isaac_typescript_definitions_1.BossID.LIL_BLUB, // 75
isaac_typescript_definitions_1.BossID.WORMWOOD, // 76
isaac_typescript_definitions_1.BossID.RAINMAKER, // 77
isaac_typescript_definitions_1.BossID.MIN_MIN, // 91
];
/** For `StageID.DROSS` (28). */
const DROSS_BOSSES = [
isaac_typescript_definitions_1.BossID.LIL_BLUB, // 75
isaac_typescript_definitions_1.BossID.WORMWOOD, // 76
isaac_typescript_definitions_1.BossID.CLOG, // 92
isaac_typescript_definitions_1.BossID.COLOSTOMIA, // 95
isaac_typescript_definitions_1.BossID.TURDLET, // 97
];
/** The set of unique bosses for Basement, Cellar, Burning Basement, Downpour, and Dross. */
const ALL_BASEMENT_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...BASEMENT_BOSSES,
...CELLAR_BOSSES,
...BURNING_BASEMENT_BOSSES,
...DOWNPOUR_BOSSES,
...DROSS_BOSSES,
]);
/** For `StageID.CAVES` (4). */
const CAVES_BOSSES = [
isaac_typescript_definitions_1.BossID.CHUB, // 3
isaac_typescript_definitions_1.BossID.GURDY, // 4
isaac_typescript_definitions_1.BossID.PESTILENCE, // 10
isaac_typescript_definitions_1.BossID.PEEP, // 14
isaac_typescript_definitions_1.BossID.FISTULA, // 18 (added in Repentance)
isaac_typescript_definitions_1.BossID.CHAD, // 21
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.GURDY_JR, // 28
isaac_typescript_definitions_1.BossID.MEGA_FATTY, // 47
isaac_typescript_definitions_1.BossID.MEGA_MAW, // 45
// - `BossID.DARK_ONE` (50) was removed in Repentance.
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.STAIN, // 57
// - `BossID.FORSAKEN` (59) was removed in Repentance.
// - `BossID.FRAIL` (66) was removed in Repentance.
isaac_typescript_definitions_1.BossID.RAG_MEGA, // 67
isaac_typescript_definitions_1.BossID.BIG_HORN, // 69
isaac_typescript_definitions_1.BossID.BUMBINO, // 94 (added in Repentance)
];
/** For `StageID.CATACOMBS` (5). */
const CATACOMBS_BOSSES = [
isaac_typescript_definitions_1.BossID.PESTILENCE, // 10
isaac_typescript_definitions_1.BossID.PEEP, // 14
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.HOLLOW, // 26
isaac_typescript_definitions_1.BossID.CARRION_QUEEN, // 27
isaac_typescript_definitions_1.BossID.GURDY_JR, // 28
isaac_typescript_definitions_1.BossID.HUSK, // 29
isaac_typescript_definitions_1.BossID.WRETCHED, // 36
isaac_typescript_definitions_1.BossID.DARK_ONE, // 50
isaac_typescript_definitions_1.BossID.POLYCEPHALUS, // 52
// - `BossID.STAIN` (57) was removed in Repentance.
isaac_typescript_definitions_1.BossID.FORSAKEN, // 59
isaac_typescript_definitions_1.BossID.FRAIL, // 66
isaac_typescript_definitions_1.BossID.RAG_MEGA, // 67
isaac_typescript_definitions_1.BossID.BIG_HORN, // 69
isaac_typescript_definitions_1.BossID.BUMBINO, // 94 (added in Repentance)
];
/** For `StageID.FLOODED_CAVES` (6). */
const FLOODED_CAVES_BOSSES = [
isaac_typescript_definitions_1.BossID.CHUB, // 3
isaac_typescript_definitions_1.BossID.GURDY, // 4
isaac_typescript_definitions_1.BossID.PESTILENCE, // 10
isaac_typescript_definitions_1.BossID.PEEP, // 14
isaac_typescript_definitions_1.BossID.FISTULA, // 18 (added in Repentance)
isaac_typescript_definitions_1.BossID.CHAD, // 21
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.GURDY_JR, // 28
isaac_typescript_definitions_1.BossID.MEGA_MAW, // 45 (added in Repentance)
isaac_typescript_definitions_1.BossID.MEGA_FATTY, // 47 (added in Repentance)
// - `BossID.DARK_ONE` (50) was removed in Repentance.
// - `BossID.POLYCEPHALUS` (52) was removed in Repentance.
isaac_typescript_definitions_1.BossID.STAIN, // 57
isaac_typescript_definitions_1.BossID.FORSAKEN, // 59
isaac_typescript_definitions_1.BossID.FRAIL, // 66
isaac_typescript_definitions_1.BossID.RAG_MEGA, // 67
isaac_typescript_definitions_1.BossID.BIG_HORN, // 69
isaac_typescript_definitions_1.BossID.BUMBINO, // 94 (added in Repentance)
];
/** For `StageID.MINES` (29). */
const MINES_BOSSES = [
isaac_typescript_definitions_1.BossID.REAP_CREEP, // 74
isaac_typescript_definitions_1.BossID.TUFF_TWINS, // 80
isaac_typescript_definitions_1.BossID.HORNFEL, // 82
isaac_typescript_definitions_1.BossID.GREAT_GIDEON, // 83
];
/** For `StageID.ASHPIT` (30). */
const ASHPIT_BOSSES = [
isaac_typescript_definitions_1.BossID.PILE, // 73
isaac_typescript_definitions_1.BossID.GREAT_GIDEON, // 83
isaac_typescript_definitions_1.BossID.SINGE, // 93
isaac_typescript_definitions_1.BossID.SHELL, // 96
isaac_typescript_definitions_1.BossID.CLUTCH, // 102
];
/** The set of unique bosses for Caves, Catacombs, Flooded Caves, Mines, and Ashpit. */
const ALL_CAVES_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...CAVES_BOSSES,
...CATACOMBS_BOSSES,
...FLOODED_CAVES_BOSSES,
...MINES_BOSSES,
...ASHPIT_BOSSES,
]);
/**
* For `StageID.DEPTHS` (7).
*
* Note that this set includes Mom, even though they are not technically in the boss pool.
*/
const DEPTHS_BOSSES = [
isaac_typescript_definitions_1.BossID.MONSTRO_2, // 5
isaac_typescript_definitions_1.BossID.MOM, // 6
isaac_typescript_definitions_1.BossID.WAR, // 11
isaac_typescript_definitions_1.BossID.LOKI, // 15
isaac_typescript_definitions_1.BossID.GISH, // 19
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.GATE, // 46
isaac_typescript_definitions_1.BossID.CAGE, // 48
// - `BossID.ADVERSARY` (51) was removed in Repentance.
isaac_typescript_definitions_1.BossID.BROWNIE, // 58
isaac_typescript_definitions_1.BossID.SISTERS_VIS, // 68
isaac_typescript_definitions_1.BossID.REAP_CREEP, // 74 (added in Repentance)
];
/**
* For `StageID.NECROPOLIS` (8).
*
* Note that this set includes Mom, even though they are not technically in the boss pool.
*/
const NECROPOLIS_BOSSES = [
isaac_typescript_definitions_1.BossID.MOM, // 6
isaac_typescript_definitions_1.BossID.WAR, // 11
isaac_typescript_definitions_1.BossID.LOKI, // 15
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.BLOAT, // 30
isaac_typescript_definitions_1.BossID.MASK_OF_INFAMY, // 35
// - `BossID.GATE` (46) was removed in Repentance.
isaac_typescript_definitions_1.BossID.ADVERSARY, // 51
isaac_typescript_definitions_1.BossID.BROWNIE, // 58
isaac_typescript_definitions_1.BossID.SISTERS_VIS, // 68
isaac_typescript_definitions_1.BossID.PILE, // 73 (added in Repentance)
];
/**
* For `StageID.DANK_DEPTHS` (9).
*
* Note that this set includes Mom, even though they are not technically in the boss pool.
*/
const DANK_DEPTHS_BOSSES = [
isaac_typescript_definitions_1.BossID.MONSTRO_2, // 5
isaac_typescript_definitions_1.BossID.MOM, // 6
isaac_typescript_definitions_1.BossID.WAR, // 11
isaac_typescript_definitions_1.BossID.LOKI, // 15
isaac_typescript_definitions_1.BossID.GISH, // 19
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.GATE, // 46 (added in Repentance)
isaac_typescript_definitions_1.BossID.CAGE, // 48 (added in Repentance)
// - `BossID.ADVERSARY` (51) was removed in Repentance.
isaac_typescript_definitions_1.BossID.BROWNIE, // 58
isaac_typescript_definitions_1.BossID.SISTERS_VIS, // 68
isaac_typescript_definitions_1.BossID.REAP_CREEP, // 74 (added in Repentance)
];
/**
* For `StageID.MAUSOLEUM` (31).
*
* Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
*/
const MAUSOLEUM_BOSSES = [
isaac_typescript_definitions_1.BossID.SIREN, // 79
isaac_typescript_definitions_1.BossID.HERETIC, // 81
isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOM, // 89
];
/**
* For `StageID.GEHENNA` (32).
*
* Note that this set includes Mausoleum Mom, even though they are not technically in the boss pool.
*/
const GEHENNA_BOSSES = [
isaac_typescript_definitions_1.BossID.VISAGE, // 78
isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOM, // 89
isaac_typescript_definitions_1.BossID.HORNY_BOYS, // 101
];
/** The set of unique bosses for Depths, Necropolis, Dank Depths, Mausoleum, and Gehenna. */
const ALL_DEPTHS_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...DEPTHS_BOSSES,
...NECROPOLIS_BOSSES,
...DANK_DEPTHS_BOSSES,
...MAUSOLEUM_BOSSES,
...GEHENNA_BOSSES,
]);
/**
* For `StageID.WOMB` (10).
*
* Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
* boss pool.
*/
const WOMB_BOSSES = [
isaac_typescript_definitions_1.BossID.SCOLEX, // 7
isaac_typescript_definitions_1.BossID.MOMS_HEART, // 8
isaac_typescript_definitions_1.BossID.DEATH, // 12
isaac_typescript_definitions_1.BossID.BLASTOCYST, // 16
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.IT_LIVES, // 25
// - `BossID.BLOAT` (30) was removed in Repentance.
isaac_typescript_definitions_1.BossID.LOKII, // 31
// - `BossID.TERATOMA` (33) was removed in Repentance.
isaac_typescript_definitions_1.BossID.CONQUEST, // 38
// - `BossID.DADDY_LONG_LEGS` (41) was removed in Repentance.
// - `BossID.TRIACHNID` (42) was removed in Repentance.
isaac_typescript_definitions_1.BossID.MAMA_GURDY, // 49
isaac_typescript_definitions_1.BossID.MR_FRED, // 53
// - `BossID.SISTERS_VIS` (68) was removed in Repentance.
isaac_typescript_definitions_1.BossID.MATRIARCH, // 72
];
/**
* For `StageID.UTERO` (11).
*
* Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
* boss pool.
*/
const UTERO_BOSSES = [
isaac_typescript_definitions_1.BossID.MOMS_HEART, // 8
isaac_typescript_definitions_1.BossID.DEATH, // 12
// - `BossID.BLASTOCYST` (16) was removed in Repentance.
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.IT_LIVES, // 25
isaac_typescript_definitions_1.BossID.BLOAT, // 30
isaac_typescript_definitions_1.BossID.LOKII, // 31
isaac_typescript_definitions_1.BossID.TERATOMA, // 33
isaac_typescript_definitions_1.BossID.CONQUEST, // 38
isaac_typescript_definitions_1.BossID.DADDY_LONG_LEGS, // 41
isaac_typescript_definitions_1.BossID.TRIACHNID, // 42
// - `BossID.MAMA_GURDY` (49) was removed in Repentance.
// - `BossID.MR_FRED` (52) was removed in Repentance.
// - `BossID.SISTERS_VIS` (68) was removed in Repentance.
// - `BossID.MATRIARCH` (72) was removed in Repentance.
];
/**
* For `StageID.SCARRED_WOMB` (12).
*
* Note that this set includes Mom's Heart & It Lives, even though they are not technically in the
* boss pool.
*/
const SCARRED_WOMB_BOSSES = [
isaac_typescript_definitions_1.BossID.SCOLEX, // 7
isaac_typescript_definitions_1.BossID.MOMS_HEART, // 8
isaac_typescript_definitions_1.BossID.DEATH, // 12
isaac_typescript_definitions_1.BossID.BLASTOCYST, // 16
isaac_typescript_definitions_1.BossID.HEADLESS_HORSEMAN, // 22
isaac_typescript_definitions_1.BossID.FALLEN, // 23
isaac_typescript_definitions_1.BossID.IT_LIVES, // 25
// - `BossID.BLOAT` (30) was removed in Repentance.
isaac_typescript_definitions_1.BossID.LOKII, // 31 (added in Repentance)
// - `BossID.TERATOMA` (33) was removed in Repentance.
isaac_typescript_definitions_1.BossID.CONQUEST, // 38
// - `BossID.DADDY_LONG_LEGS` (41) was removed in Repentance.
isaac_typescript_definitions_1.BossID.TRIACHNID, // 42
isaac_typescript_definitions_1.BossID.MAMA_GURDY, // 49
isaac_typescript_definitions_1.BossID.MR_FRED, // 53 (added in Repentance)
// - `BossID.SISTERS_VIS` (68) was removed in Repentance.
isaac_typescript_definitions_1.BossID.MATRIARCH, // 72
];
/**
* For `StageID.CORPSE` (33).
*
* Note that this set includes Mother, even though she is not technically in the boss pool.
*/
const CORPSE_BOSSES = [
isaac_typescript_definitions_1.BossID.SCOURGE, // 85
isaac_typescript_definitions_1.BossID.CHIMERA, // 86
isaac_typescript_definitions_1.BossID.ROTGUT, // 87
isaac_typescript_definitions_1.BossID.MOTHER, // 88
];
/** The set of unique bosses for Womb, Utero, Scarred Womb, and Corpse. */
const ALL_WOMB_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...WOMB_BOSSES,
...UTERO_BOSSES,
...SCARRED_WOMB_BOSSES,
...CORPSE_BOSSES,
]);
const BLUE_WOMB_BOSSES = [
isaac_typescript_definitions_1.BossID.HUSH, // 63
];
const ALL_BLUE_WOMB_BOSSES_SET = new ReadonlySet_1.ReadonlySet([...BLUE_WOMB_BOSSES]);
const SHEOL_BOSSES = [
isaac_typescript_definitions_1.BossID.SATAN, // 24
];
const CATHEDRAL_BOSSES = [
isaac_typescript_definitions_1.BossID.ISAAC, // 39
];
const ALL_STAGE_10_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...SHEOL_BOSSES,
...CATHEDRAL_BOSSES,
]);
/**
* Note that this set includes Mega Satan, even though they are not technically in the boss pool.
*/
const DARK_ROOM_BOSSES = [
isaac_typescript_definitions_1.BossID.LAMB, // 54
isaac_typescript_definitions_1.BossID.MEGA_SATAN, // 55
];
/**
* Note that this set includes Mega Satan, even though they are not technically in the boss pool.
*/
const CHEST_BOSSES = [
isaac_typescript_definitions_1.BossID.BLUE_BABY, // 40
isaac_typescript_definitions_1.BossID.MEGA_SATAN, // 55
];
const ALL_STAGE_11_BOSSES_SET = new ReadonlySet_1.ReadonlySet([
...DARK_ROOM_BOSSES,
...CHEST_BOSSES,
]);
const VOID_BOSSES = [
isaac_typescript_definitions_1.BossID.DELIRIUM, // 70
];
const ALL_VOID_BOSSES_SET = new ReadonlySet_1.ReadonlySet([...VOID_BOSSES]);
/**
* Includes Dogma and The Beast. Does not include Ultra Famine, Ultra Pestilence, Ultra War, and
* Ultra Death (since they do not have boss IDs).
*/
const HOME_BOSSES = [
isaac_typescript_definitions_1.BossID.DOGMA, // 99
isaac_typescript_definitions_1.BossID.BEAST, // 100
];
const ALL_HOME_BOSSES_SET = new ReadonlySet_1.ReadonlySet([...HOME_BOSSES]);
exports.STAGE_ID_TO_BOSS_IDS = new ReadonlyMap_1.ReadonlyMap([
[], // 1
[], // 2
[], // 3
[], // 27
[], // 28
[], // 4
[], // 5
[], // 6
[], // 29
[], // 30
[], // 7
[], // 8
[], // 9
[], // 31
[], // 32
[], // 10
[], // 11
[], // 12
[], // 33
[], // 13
[], // 14
[], // 15
[], // 16
[], // 17
[], // 26
[], // 35
]);
exports.STAGE_TO_COMBINED_BOSS_SET_MAP = new ReadonlyMap_1.ReadonlyMap([
[], // 1
[], // 2
[], // 3
[], // 4
[], // 5
[], // 6
[], // 7
[], // 8
[], // 9
[], // 10
[], // 11
[], // 12
[], // 13
]);
exports.ALL_BOSSES = cachedEnumValues_1.BOSS_ID_VALUES.filter((bossID) => bossID !== isaac_typescript_definitions_1.BossID.RAGLICH);
exports.NON_STORY_BOSSES = exports.ALL_BOSSES.filter((bossID) => !(0, storyBosses_1.isStoryBossID)(bossID));
exports.BOSS_ID_TO_STAGE_IDS = (() => {
const partialBossIDsToStageIDs = {};
for (const bossID of cachedEnumValues_1.BOSS_ID_VALUES) {
const stageIDs = new Set();
for (const [stageID, bossIDs] of exports.STAGE_ID_TO_BOSS_IDS) {
if (bossIDs.includes(bossID)) {
stageIDs.add(stageID);
}
}
partialBossIDsToStageIDs[bossID] = stageIDs;
}
const bossIDsToStageIDs = partialBossIDsToStageIDs;
// In Repentance, the following bosses will have empty sets:
// - BossID.ULTRA_GREED (62)
// - BossID.ULTRA_GREEDIER (71)
// - BossID.MAUSOLEUM_MOMS_HEART (90)
// - BossID.RAGLICH (98)
bossIDsToStageIDs[isaac_typescript_definitions_1.BossID.ULTRA_GREED].add(isaac_typescript_definitions_1.StageID.ULTRA_GREED); // 62
bossIDsToStageIDs[isaac_typescript_definitions_1.BossID.ULTRA_GREEDIER].add(isaac_typescript_definitions_1.StageID.ULTRA_GREED); // 71
bossIDsToStageIDs[isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOMS_HEART].add(isaac_typescript_definitions_1.StageID.MAUSOLEUM); // 90
bossIDsToStageIDs[isaac_typescript_definitions_1.BossID.MAUSOLEUM_MOMS_HEART].add(isaac_typescript_definitions_1.StageID.GEHENNA); // 90
return bossIDsToStageIDs;
})();