UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

113 lines 5.91 kB
import type { LevelStage, StageID } from "isaac-typescript-definitions"; import { BossID, EntityType } from "isaac-typescript-definitions"; /** * Helper function to get all of the non-dead bosses in the room. * * This function will not include bosses on an internal blacklist, such as Death's scythes or Big * Horn holes. * * @param entityType Optional. If specified, will only get the bosses that match the type. Default * is -1, which matches every type. * @param variant Optional. If specified, will only get the bosses that match the variant. Default * is -1, which matches every variant. * @param subType Optional. If specified, will only get the bosses that match the sub-type. Default * is -1, which matches every sub-type. * @param ignoreFriendly Optional. Default is false. */ export declare function getAliveBosses(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): readonly EntityNPC[]; /** * Helper function to get an array with every boss in the game. This is derived from the `BossID` * enum. * * This includes: * - Ultra Greed * - Ultra Greedier * * This does not include: * - mini-bosses (e.g. Ultra Pride, Krampus) * - bosses that do not appear in Boss Rooms (e.g. Uriel, Gabriel) * - the second phase of multi-phase bosses (e.g. Mega Satan 2) * - sub-bosses of The Beast fight (e.g. Ultra Famine, Ultra Pestilence, Ultra War, Ultra Death) * - bosses that do not have any Boss Rooms defined due to being unfinished (e.g. Raglich) * * Also see the `getAllNonStoryBosses` function. */ export declare function getAllBosses(): readonly BossID[]; /** * Helper function to get an array with every boss in the game. This is derived from the `BossID` * enum. This is the same thing as the `getAllBosses` helper function, but with story bosses * filtered out. */ export declare function getAllNonStoryBosses(): readonly BossID[]; /** * Helper function to get the boss ID corresponding to the current room. Returns undefined if the * current room is not a Boss Room. * * Use this instead of the vanilla `Room.GetBossID` method since it has a saner return type and it * correctly handles Dogma, The Beast, and Ultra Greedier. */ export declare function getBossID(): BossID | undefined; export declare function getBossIDFromEntityTypeVariant(entityType: EntityType, variant: int): BossID | undefined; /** * Helper function to get the set of vanilla bosses for a particular stage across all of the stage * types. For example, specifying `LevelStage.BASEMENT_2` will return a set with all of the bosses * for Basement, Cellar, Burning Basement, Downpour, and Dross. * * Also see the `getAllBossesSet` and `getBossIDsForStageID` functions. */ export declare function getBossIDsForStage(stage: LevelStage): ReadonlySet<BossID> | undefined; /** * Helper function to get the set of vanilla bosses that can randomly appear on a particular stage * ID. * * Also see the `getAllBossesSet` and `getBossIDsForStage` functions. */ export declare function getBossIDsForStageID(stageID: StageID): readonly BossID[] | undefined; /** * Helper function to get the proper English name for a boss. For example, the name for * `BossID.WRETCHED` (36) is "The Wretched". */ export declare function getBossName(bossID: BossID): string; /** Helper function to get the set of stage IDs that a particular boss naturally appears in. */ export declare function getBossStageIDs(bossID: BossID): ReadonlySet<StageID>; /** * Helper function to get all of the bosses in the room. * * @param entityType Optional. If specified, will only get the bosses that match the type. Default * is -1, which matches every type. * @param variant Optional. If specified, will only get the bosses that match the variant. Default * is -1, which matches every variant. * @param subType Optional. If specified, will only get the bosses that match the sub-type. Default * is -1, which matches every sub-type. * @param ignoreFriendly Optional. Default is false. */ export declare function getBosses(entityType?: EntityType, variant?: int, subType?: int, ignoreFriendly?: boolean): readonly EntityNPC[]; export declare function getEntityTypeVariantFromBossID(bossID: BossID): readonly [EntityType, int]; /** * Helper function to check if a boss is only found on a Repentance floor such as Dross, Mines, and * so on. * * For example, The Pile is a boss that was added in Repentance, but since it can appear in * Necropolis, it is not considered a Repentance boss for the purposes of this function. */ export declare function isRepentanceBoss(bossID: BossID): boolean; /** Helper function to check if the provided NPC is a Sin miniboss, such as Sloth or Lust. */ export declare function isSin(npc: EntityNPC): boolean; /** * Helper function to spawn a boss. * * Use this function instead of `spawnNPC` since it handles automatically spawning multiple segments * for multi-segment bosses. * * By default, this will spawn Chub (and his variants) with 3 segments, Lokii with 2 copies, * Gurglings/Turdlings with 2 copies, and other multi-segment bosses with 4 segments. You can * customize this via the "numSegments" argument. */ export declare function spawnBoss(entityType: EntityType, variant: int, subType: int, positionOrGridIndex: Vector | int, velocity?: Vector, spawner?: Entity, seedOrRNG?: Seed | RNG, numSegments?: int): EntityNPC; /** * Helper function to spawn a boss with a specific seed. * * For more information, see the documentation for the `spawnBoss` function. */ export declare function spawnBossWithSeed(entityType: EntityType, variant: int, subType: int, positionOrGridIndex: Vector | int, seedOrRNG: Seed | RNG, velocity?: Vector, spawner?: Entity, numSegments?: int): EntityNPC; //# sourceMappingURL=bosses.d.ts.map