isaac-typescript-definitions
Version:
TypeScript definitions for The Binding of Isaac: Repentance.
176 lines (153 loc) • 5.38 kB
TypeScript
import type {
BatterySubType,
BombSubType,
CardType,
CoinSubType,
CollectibleType,
HeartSubType,
KeySubType,
PickupNullSubType,
PillColor,
PoopPickupSubType,
SackSubType,
TrinketType,
} from "../../enums/collections/subTypes";
import type { PickupVariant } from "../../enums/collections/variants";
import type { EntityType } from "../../enums/EntityType";
declare global {
interface EntityPickup extends Entity {
AppearFast: () => void;
CanReroll: () => boolean;
GetCoinValue: () => int;
IsShopItem: () => boolean;
/**
* @param entityType
* @param variant
* @param subType
* @param keepPrice Default is false.
* @param keepSeed If set to true, keeps the initial RNG seed of the pickup instead of rerolling
* it. Default is false.
* @param ignoreModifiers If set to true, ignores item effects that might turn this pickup into
* something other than the specified variant and subtype. Default is
* false.
*/
Morph: (
entityType: EntityType,
variant: int,
subType: int,
keepPrice?: boolean,
keepSeed?: boolean,
ignoreModifiers?: boolean,
) => void;
PlayDropSound: () => void;
PlayPickupSound: () => void;
/** @param player Default is undefined. */
TryOpenChest: (player?: EntityPlayer) => boolean;
AutoUpdatePrice: boolean;
Charge: int;
/**
* Any non-zero value causes the item to form an option group with any other item with the same
* OptionsPickupIndex value.
*
* When an item belonging to an option group is picked up, all other items belonging to the same
* group disappear.
*
* 0 is the default value and means the item doesn't belong to any group.
*/
OptionsPickupIndex: int;
/**
* The price can be from 0 to 99 or a special negative value. Special kinds of prices (like
* Devil Deal prices) are represented by the `PickupPrice` enum (which contain negative values).
*/
Price: int;
/**
* If in a shop, this value describes which slot the item is for sale in. For example, if the
* shop has 6 things for sale, the pickups in the room will have shop item IDs of 0, 1, 2, 3, 4,
* and 5.
*
* When spawning a new collectible item, `ShopItemId` will be 0 by default. This has a side
* effect of making the D6 roll the collectible into a red heart. By setting shop item id to -1,
* it will fix this behavior such that the collectible will properly roll into another
* collectible. However, non-collectible pickups may reroll into collectibles through a D20 or
* similar.
*
* By setting shop item id to -2, automatic prices will be devil deal prices. Otherwise this is
* identical to -1.
*
* Other negative values act identically to -1.
*/
ShopItemId: int;
State: int;
Timeout: int;
Touched: boolean;
Variant: PickupVariant;
/**
* Used with collectibles to enforce a period of time where the player will not automatically
* pick up the collectible. New collectibles spawn with a `Wait` value of 20 (which corresponds
* to 20 game frames). The value will automatically decrement as game frames pass.
*
* It is unknown whether this value is used for pickups other than collectibles.
*/
Wait: int;
}
/** For `PickupVariant.NULL` (0). */
interface EntityPickupNull extends EntityPickup {
SubType: PickupNullSubType;
Variant: PickupVariant.NULL;
}
/** For `PickupVariant.HEART` (10). */
interface EntityPickupHeart extends EntityPickup {
SubType: HeartSubType;
Variant: PickupVariant.HEART;
}
/** For `PickupVariant.COIN` (20). */
interface EntityPickupCoin extends EntityPickup {
SubType: CoinSubType;
Variant: PickupVariant.COIN;
}
/** For `PickupVariant.KEY` (30). */
interface EntityPickupKey extends EntityPickup {
SubType: KeySubType;
Variant: PickupVariant.KEY;
}
/** For `PickupVariant.BOMB` (40). */
interface EntityPickupBomb extends EntityPickup {
SubType: BombSubType;
Variant: PickupVariant.BOMB;
}
/** For `PickupVariant.POOP` (42). */
interface EntityPickupPoop extends EntityPickup {
SubType: PoopPickupSubType;
Variant: PickupVariant.POOP;
}
/** For `PickupVariant.SACK` (69). */
interface EntityPickupSack extends EntityPickup {
SubType: SackSubType;
Variant: PickupVariant.SACK;
}
/** For `PickupVariant.PILL` (70). */
interface EntityPickupPill extends EntityPickup {
SubType: PillColor;
Variant: PickupVariant.PILL;
}
/** For `PickupVariant.LIL_BATTERY` (90). */
interface EntityPickupBattery extends EntityPickup {
SubType: BatterySubType;
Variant: PickupVariant.LIL_BATTERY;
}
/** For `PickupVariant.COLLECTIBLE` (100). */
interface EntityPickupCollectible extends EntityPickup {
SubType: CollectibleType;
Variant: PickupVariant.COLLECTIBLE;
}
/** For `PickupVariant.CARD` (300). */
interface EntityPickupCard extends EntityPickup {
SubType: CardType;
Variant: PickupVariant.CARD;
}
/** For `PickupVariant.TRINKET` (350). */
interface EntityPickupTrinket extends EntityPickup {
SubType: TrinketType;
Variant: PickupVariant.TRINKET;
}
}