Skip to main content

Flag

Functions

addFlag

addFlag<T>(flags, ...flagsToAdd): BitFlags<T>

Helper function to add a bit flag to an existing set of bit flags.

This is a variadic function, so pass as many flags as you want to add.

Example 1:

// Give the player spectral tears
const player = Isaac.GetPlayer();
player.TearFlags = addFlag(player.TearFlags, TearFlags.TEAR_SPECTRAL);

Example 2:

// Give the player spectral and homing tears
const player = Isaac.GetPlayer();
player.TearFlags = addFlag(player.TearFlags, TearFlags.TEAR_SPECTRAL, TearFlags.TEAR_HOMING);

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameTypeDescription
flagsT | BitFlags<T>The existing set of bit flags.
...flagsToAddreadonly T[]One or more bit flags to add, each as a separate argument.

Returns

BitFlags<T>

The combined bit flags.

Defined in

packages/isaacscript-common/src/functions/flag.ts:29


bitFlags

bitFlags<T>(flag): BitFlags<T>

Helper function for casting a flag enum value to a BitFlags object.

This is useful because the compiler will prevent you from assigning a specific flag to a BitFlags field. (It does this to ensure type safety, since BitFlags can represent a zero value or a composition of N flags.)

For example:

player.TearFlags = bitFlags(TearFlag.SPECTRAL);

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameType
flagT

Returns

BitFlags<T>

Defined in

packages/isaacscript-common/src/functions/flag.ts:55


getFlagName

getFlagName<T>(flag, flagEnum): string | undefined

Helper function to get the key associated with a particular flag.

(Since bit flags are represented by custom objects instead of normal TypeScript enums, you cannot use the reverse mapping to find the associated key of a given enum value. Use this helper function instead of indexing the enum directly.)

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameType
flagBitFlag
flagEnumReadonly<Record<string, T>>

Returns

string | undefined

Defined in

packages/isaacscript-common/src/functions/flag.ts:66


hasFlag

hasFlag<T>(flags, ...flagsToCheck): boolean

Helper function to determine if a particular bit flag is set to true.

This is a variadic function, so pass as many flags as you want to check for. If passed multiple flags, it will only return true if all of the flags are set.

For example:

const player = Isaac.GetPlayer();
if (hasFlag(player.TearFlags, TearFlags.TEAR_SPECTRAL) {
// The player currently has spectral tears
}

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameTypeDescription
flagsT | BitFlags<T>The existing set of bit flags.
...flagsToCheckreadonly T[]One or more bit flags to check for, each as a separate argument.

Returns

boolean

Defined in

packages/isaacscript-common/src/functions/flag.ts:97


isEmptyFlag

isEmptyFlag<T>(flag): boolean

Helper function to check if every bit in the flag is turned off.

(This is equivalent to checking if the flag is equal to 0, but this is not possible without casting the flag to a number.)

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameType
flagT

Returns

boolean

Defined in

packages/isaacscript-common/src/functions/flag.ts:118


isSelfDamage

isSelfDamage(damageFlags): boolean

Helper function to determine whether damage to a player in the ENTITY_TAKE_DMG callback was self-inflicted. For example, damage from a Curse Room door, a Razor, or a Blood Donation Machine would count as self-inflicted damage.

Parameters

NameType
damageFlagsDamageFlagValue | BitFlags<DamageFlagValue>

Returns

boolean

Defined in

packages/isaacscript-common/src/functions/flag.ts:127


removeFlag

removeFlag<T>(flags, ...flagsToRemove): BitFlags<T>

Helper function to remove a bit flag from an existing set of bit flags.

This is a variadic function, so pass as many flags as you want to remove.

For example:

// Remove spectral tears from the player, if present
const player = Isaac.GetPlayer();
player.TearFlags = removeFlag(player.TearFlags, TearFlags.TEAR_SPECTRAL);

Type parameters

NameType
Textends BitFlag | BitFlag128

Parameters

NameTypeDescription
flagsT | BitFlags<T>The existing set of bit flags.
...flagsToRemovereadonly T[]One or more bit flags to remove, each as a separate argument.

Returns

BitFlags<T>

The combined bit flags.

Defined in

packages/isaacscript-common/src/functions/flag.ts:155