isaacscript-common
Version:
Helper functions and features for IsaacScript mods.
131 lines (117 loc) • 5.58 kB
text/typescript
import { LevelStage, StageID, StageType } from "isaac-typescript-definitions";
import { ReadonlyMap } from "../types/ReadonlyMap";
const BASEMENT_TO_STAGE_ID = {
[]: StageID.BASEMENT, // 0
[]: StageID.CELLAR, // 1
[]: StageID.BURNING_BASEMENT, // 2
[]: StageID.BASEMENT, // 3
[]: StageID.DOWNPOUR, // 4
[]: StageID.DROSS, // 5
} as const satisfies Record<StageType, StageID>;
const CAVES_TO_STAGE_ID = {
[]: StageID.CAVES, // 0
[]: StageID.CATACOMBS, // 1
[]: StageID.FLOODED_CAVES, // 2
[]: StageID.CAVES, // 3
[]: StageID.MINES, // 4
[]: StageID.ASHPIT, // 5
} as const satisfies Record<StageType, StageID>;
const DEPTHS_TO_STAGE_ID = {
[]: StageID.DEPTHS, // 0
[]: StageID.NECROPOLIS, // 1
[]: StageID.DANK_DEPTHS, // 2
[]: StageID.DEPTHS, // 3
[]: StageID.MAUSOLEUM, // 4
[]: StageID.GEHENNA, // 5
} as const satisfies Record<StageType, StageID>;
const WOMB_TO_STAGE_ID = {
[]: StageID.WOMB, // 0
[]: StageID.UTERO, // 1
[]: StageID.SCARRED_WOMB, // 2
[]: StageID.WOMB, // 3
[]: StageID.CORPSE, // 4
[]: StageID.MORTIS, // 5
} as const satisfies Record<StageType, StageID>;
const BLUE_WOMB_TO_STAGE_ID = {
[]: StageID.BLUE_WOMB, // 0
[]: StageID.BLUE_WOMB, // 1
[]: StageID.BLUE_WOMB, // 2
[]: StageID.BLUE_WOMB, // 3
[]: StageID.BLUE_WOMB, // 4
[]: StageID.BLUE_WOMB, // 5
} as const satisfies Record<StageType, StageID>;
const SHEOL_CATHEDRAL_TO_STAGE_ID = {
[]: StageID.SHEOL, // 0
[]: StageID.CATHEDRAL, // 1
[]: StageID.SHEOL, // 2
[]: StageID.SHEOL, // 3
[]: StageID.SHEOL, // 4
[]: StageID.SHEOL, // 5
} as const satisfies Record<StageType, StageID>;
const DARK_ROOM_CHEST_TO_STAGE_ID = {
[]: StageID.DARK_ROOM, // 0
[]: StageID.CHEST, // 1
[]: StageID.DARK_ROOM, // 2
[]: StageID.DARK_ROOM, // 3
[]: StageID.DARK_ROOM, // 4
[]: StageID.DARK_ROOM, // 5
} as const satisfies Record<StageType, StageID>;
const VOID_TO_STAGE_ID = {
[]: StageID.VOID, // 0
[]: StageID.VOID, // 1
[]: StageID.VOID, // 2
[]: StageID.VOID, // 3
[]: StageID.VOID, // 4
[]: StageID.VOID, // 5
} as const satisfies Record<StageType, StageID>;
const HOME_TO_STAGE_ID = {
[]: StageID.HOME, // 0
[]: StageID.HOME, // 1
[]: StageID.HOME, // 2
[]: StageID.HOME, // 3
[]: StageID.HOME, // 4
[]: StageID.HOME, // 5
} as const satisfies Record<StageType, StageID>;
export const STAGE_TO_STAGE_ID = {
[]: BASEMENT_TO_STAGE_ID, // 1
[]: BASEMENT_TO_STAGE_ID, // 2
[]: CAVES_TO_STAGE_ID, // 3
[]: CAVES_TO_STAGE_ID, // 4
[]: DEPTHS_TO_STAGE_ID, // 5
[]: DEPTHS_TO_STAGE_ID, // 6
[]: WOMB_TO_STAGE_ID, // 7
[]: WOMB_TO_STAGE_ID, // 8
[]: BLUE_WOMB_TO_STAGE_ID, // 9
[]: SHEOL_CATHEDRAL_TO_STAGE_ID, // 10
[]: DARK_ROOM_CHEST_TO_STAGE_ID, // 11
[]: VOID_TO_STAGE_ID, // 12
[]: HOME_TO_STAGE_ID, // 13
} as const satisfies Record<LevelStage, Record<StageType, StageID>>;
const SHOP_TO_STAGE_ID = {
[]: StageID.SHOP, // 0
[]: StageID.SHOP, // 1
[]: StageID.SHOP, // 2
[]: StageID.SHOP, // 3
[]: StageID.SHOP, // 4
[]: StageID.SHOP, // 5
} as const satisfies Record<StageType, StageID>;
const ULTRA_GREED_TO_STAGE_ID = {
[]: StageID.ULTRA_GREED, // 0
[]: StageID.ULTRA_GREED, // 1
[]: StageID.ULTRA_GREED, // 2
[]: StageID.ULTRA_GREED, // 3
[]: StageID.ULTRA_GREED, // 4
[]: StageID.ULTRA_GREED, // 5
} as const satisfies Record<StageType, StageID>;
export const STAGE_TO_STAGE_ID_GREED_MODE = new ReadonlyMap<
LevelStage,
Record<StageType, StageID>
>([
[], // 1
[], // 2
[], // 3
[], // 4
[], // 5
[], // 6
[], // 7
]);