isaacscript-common 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/cachedClasses.ts +0 -39
- package/callbacks/customRevive.ts +0 -215
- package/callbacks/itemPickup.ts +0 -101
- package/callbacks/postAmbush.ts +0 -73
- package/callbacks/postBombExploded.ts +0 -26
- package/callbacks/postBombInitLate.ts +0 -36
- package/callbacks/postBoneSwing.ts +0 -64
- package/callbacks/postCollectibleInitFirst.ts +0 -40
- package/callbacks/postCursedTeleport.ts +0 -185
- package/callbacks/postCustomDoorEnter.ts +0 -292
- package/callbacks/postDiceRoomActivated.ts +0 -60
- package/callbacks/postDoorRender.ts +0 -26
- package/callbacks/postDoorUpdate.ts +0 -26
- package/callbacks/postEffectInitLate.ts +0 -36
- package/callbacks/postEffectStateChanged.ts +0 -43
- package/callbacks/postEsauJr.ts +0 -109
- package/callbacks/postFamiliarInitLate.ts +0 -36
- package/callbacks/postFamiliarStateChanged.ts +0 -43
- package/callbacks/postFlip.ts +0 -90
- package/callbacks/postGreedModeWave.ts +0 -41
- package/callbacks/postGridEntity.ts +0 -164
- package/callbacks/postGridEntityCollision.ts +0 -69
- package/callbacks/postGridEntityRender.ts +0 -26
- package/callbacks/postHolyMantleRemoved.ts +0 -55
- package/callbacks/postItemDischarged.ts +0 -154
- package/callbacks/postKnifeInitLate.ts +0 -36
- package/callbacks/postLaserInitLate.ts +0 -36
- package/callbacks/postNPCInitLate.ts +0 -36
- package/callbacks/postNPCStateChanged.ts +0 -42
- package/callbacks/postNewRoomEarly.ts +0 -96
- package/callbacks/postPickupCollect.ts +0 -48
- package/callbacks/postPickupInitFirst.ts +0 -70
- package/callbacks/postPickupInitLate.ts +0 -36
- package/callbacks/postPickupStateChanged.ts +0 -43
- package/callbacks/postPitRender.ts +0 -26
- package/callbacks/postPitUpdate.ts +0 -26
- package/callbacks/postPlayerChangeHealth.ts +0 -62
- package/callbacks/postPlayerChangeType.ts +0 -56
- package/callbacks/postPlayerCollectible.ts +0 -113
- package/callbacks/postPlayerFatalDamage.ts +0 -141
- package/callbacks/postPlayerInitLate.ts +0 -37
- package/callbacks/postPlayerReordered.ts +0 -142
- package/callbacks/postPoopRender.ts +0 -26
- package/callbacks/postPoopUpdate.ts +0 -26
- package/callbacks/postPressurePlateRender.ts +0 -26
- package/callbacks/postPressurePlateUpdate.ts +0 -26
- package/callbacks/postProjectileInitLate.ts +0 -36
- package/callbacks/postPurchase.ts +0 -64
- package/callbacks/postRockRender.ts +0 -26
- package/callbacks/postRockUpdate.ts +0 -26
- package/callbacks/postRoomClearChanged.ts +0 -57
- package/callbacks/postSacrifice.ts +0 -64
- package/callbacks/postSlotDestroyed.ts +0 -92
- package/callbacks/postSlotInitUpdate.ts +0 -68
- package/callbacks/postSlotRender.ts +0 -69
- package/callbacks/postSpikesRender.ts +0 -26
- package/callbacks/postSpikesUpdate.ts +0 -26
- package/callbacks/postTNTRender.ts +0 -26
- package/callbacks/postTNTUpdate.ts +0 -26
- package/callbacks/postTearInitLate.ts +0 -36
- package/callbacks/postTearInitVeryLate.ts +0 -41
- package/callbacks/postTransformation.ts +0 -59
- package/callbacks/postTrinketBreak.ts +0 -112
- package/callbacks/preBerserkDeath.ts +0 -49
- package/callbacks/preNewLevel.ts +0 -55
- package/callbacks/reorderedCallbacks.ts +0 -168
- package/callbacks/subscriptions/postAmbushFinished.ts +0 -32
- package/callbacks/subscriptions/postAmbushStarted.ts +0 -32
- package/callbacks/subscriptions/postBombInitLate.ts +0 -32
- package/callbacks/subscriptions/postBoneExploded.ts +0 -32
- package/callbacks/subscriptions/postBoneSwing.ts +0 -24
- package/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
- package/callbacks/subscriptions/postCursedTeleport.ts +0 -24
- package/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
- package/callbacks/subscriptions/postCustomRevive.ts +0 -36
- package/callbacks/subscriptions/postDiceRoomActivated.ts +0 -38
- package/callbacks/subscriptions/postDoorRender.ts +0 -35
- package/callbacks/subscriptions/postDoorUpdate.ts +0 -35
- package/callbacks/subscriptions/postEffectInitLate.ts +0 -32
- package/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
- package/callbacks/subscriptions/postEsauJr.ts +0 -24
- package/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
- package/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
- package/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
- package/callbacks/subscriptions/postFirstFlip.ts +0 -24
- package/callbacks/subscriptions/postFlip.ts +0 -22
- package/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
- package/callbacks/subscriptions/postGreedModeWave.ts +0 -24
- package/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
- package/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
- package/callbacks/subscriptions/postGridEntityInit.ts +0 -51
- package/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
- package/callbacks/subscriptions/postGridEntityRender.ts +0 -51
- package/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
- package/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
- package/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
- package/callbacks/subscriptions/postItemDischarged.ts +0 -43
- package/callbacks/subscriptions/postItemPickup.ts +0 -64
- package/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
- package/callbacks/subscriptions/postLaserInitLate.ts +0 -32
- package/callbacks/subscriptions/postNPCInitLate.ts +0 -32
- package/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
- package/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
- package/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
- package/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
- package/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
- package/callbacks/subscriptions/postPickupCollect.ts +0 -35
- package/callbacks/subscriptions/postPickupInitFirst.ts +0 -32
- package/callbacks/subscriptions/postPickupInitLate.ts +0 -32
- package/callbacks/subscriptions/postPickupStateChanged.ts +0 -40
- package/callbacks/subscriptions/postPitRender.ts +0 -35
- package/callbacks/subscriptions/postPitUpdate.ts +0 -35
- package/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -49
- package/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
- package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +0 -38
- package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +0 -38
- package/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -68
- package/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
- package/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
- package/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
- package/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
- package/callbacks/subscriptions/postPoopRender.ts +0 -35
- package/callbacks/subscriptions/postPoopUpdate.ts +0 -35
- package/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
- package/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
- package/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
- package/callbacks/subscriptions/postPurchase.ts +0 -31
- package/callbacks/subscriptions/postRockRender.ts +0 -35
- package/callbacks/subscriptions/postRockUpdate.ts +0 -35
- package/callbacks/subscriptions/postRoomClearChanged.ts +0 -30
- package/callbacks/subscriptions/postSacrifice.ts +0 -43
- package/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
- package/callbacks/subscriptions/postSlotDestroyed.ts +0 -55
- package/callbacks/subscriptions/postSlotInit.ts +0 -32
- package/callbacks/subscriptions/postSlotRender.ts +0 -32
- package/callbacks/subscriptions/postSlotUpdate.ts +0 -32
- package/callbacks/subscriptions/postSpikesRender.ts +0 -35
- package/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
- package/callbacks/subscriptions/postTNTRender.ts +0 -35
- package/callbacks/subscriptions/postTNTUpdate.ts +0 -35
- package/callbacks/subscriptions/postTearInitLate.ts +0 -32
- package/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
- package/callbacks/subscriptions/postTransformation.ts +0 -40
- package/callbacks/subscriptions/postTrinketBreak.ts +0 -38
- package/callbacks/subscriptions/preBerserkDeath.ts +0 -42
- package/callbacks/subscriptions/preCustomRevive.ts +0 -46
- package/callbacks/subscriptions/preItemPickup.ts +0 -64
- package/callbacks/subscriptions/preNewLevel.ts +0 -24
- package/classes/DefaultMap.ts +0 -174
- package/classes/ModUpgraded.ts +0 -84
- package/constants.ts +0 -162
- package/constantsFirstLast.ts +0 -217
- package/enums/AmbushType.ts +0 -4
- package/enums/HealthType.ts +0 -16
- package/enums/ModCallbackCustom.ts +0 -1278
- package/enums/PocketItemType.ts +0 -8
- package/enums/SerializationType.ts +0 -5
- package/enums/SlotDestructionType.ts +0 -4
- package/enums/private/CopyableIsaacAPIClassType.ts +0 -7
- package/enums/private/SaveDataKey.ts +0 -14
- package/enums/private/SerializationBrand.ts +0 -42
- package/features/characterHealthConversion.ts +0 -111
- package/features/characterStats.ts +0 -61
- package/features/debugDisplay/debugDisplay.ts +0 -221
- package/features/debugDisplay/exports.ts +0 -368
- package/features/debugDisplay/v.ts +0 -65
- package/features/deployJSONRoom.ts +0 -743
- package/features/disableInputs.ts +0 -193
- package/features/disableSound.ts +0 -77
- package/features/extraConsoleCommands/commandsDisplay.ts +0 -290
- package/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
- package/features/extraConsoleCommands/init.ts +0 -334
- package/features/extraConsoleCommands/listCommands.ts +0 -1299
- package/features/extraConsoleCommands/v.ts +0 -14
- package/features/fadeInRemover.ts +0 -60
- package/features/fastReset.ts +0 -75
- package/features/forgottenSwitch.ts +0 -50
- package/features/getCollectibleItemPoolType.ts +0 -66
- package/features/persistentEntities.ts +0 -183
- package/features/playerInventory.ts +0 -135
- package/features/ponyDetection.ts +0 -74
- package/features/preventCollectibleRotation.ts +0 -115
- package/features/runInNFrames.ts +0 -148
- package/features/saveDataManager/constants.ts +0 -4
- package/features/saveDataManager/exports.ts +0 -229
- package/features/saveDataManager/load.ts +0 -99
- package/features/saveDataManager/main.ts +0 -195
- package/features/saveDataManager/maps.ts +0 -13
- package/features/saveDataManager/merge.ts +0 -194
- package/features/saveDataManager/save.ts +0 -74
- package/features/saveDataManager/serializationBrand.ts +0 -16
- package/features/sirenHelpers.ts +0 -129
- package/features/taintedLazarusPlayers.ts +0 -113
- package/featuresInitialized.ts +0 -20
- package/functions/ambush.ts +0 -47
- package/functions/array.ts +0 -410
- package/functions/benchmark.ts +0 -36
- package/functions/bitwise.ts +0 -24
- package/functions/bombs.ts +0 -12
- package/functions/boss.ts +0 -227
- package/functions/cacheFlag.ts +0 -12
- package/functions/cards.ts +0 -271
- package/functions/challenges.ts +0 -13
- package/functions/character.ts +0 -126
- package/functions/charge.ts +0 -237
- package/functions/chargeBar.ts +0 -67
- package/functions/collectibleCacheFlag.ts +0 -90
- package/functions/collectibleSet.ts +0 -56
- package/functions/collectibleTag.ts +0 -89
- package/functions/collectibles.ts +0 -659
- package/functions/color.ts +0 -128
- package/functions/debug.ts +0 -68
- package/functions/deepCopy.ts +0 -535
- package/functions/deepCopyTests.ts +0 -386
- package/functions/direction.ts +0 -49
- package/functions/doors.ts +0 -347
- package/functions/easing.ts +0 -182
- package/functions/eden.ts +0 -47
- package/functions/effects.ts +0 -20
- package/functions/entity.ts +0 -439
- package/functions/entitySpecific.ts +0 -889
- package/functions/entityTypes.ts +0 -6
- package/functions/enums.ts +0 -146
- package/functions/familiars.ts +0 -106
- package/functions/flag.ts +0 -165
- package/functions/flying.ts +0 -117
- package/functions/globals.ts +0 -242
- package/functions/gridEntity.ts +0 -511
- package/functions/gridEntitySpecific.ts +0 -112
- package/functions/input.ts +0 -139
- package/functions/isaacAPIClass.ts +0 -67
- package/functions/jsonHelpers.ts +0 -45
- package/functions/jsonRoom.ts +0 -100
- package/functions/kColor.ts +0 -129
- package/functions/language.ts +0 -13
- package/functions/level.ts +0 -31
- package/functions/log.ts +0 -720
- package/functions/map.ts +0 -56
- package/functions/math.ts +0 -149
- package/functions/mergeTests.ts +0 -288
- package/functions/npc.ts +0 -148
- package/functions/pickupVariants.ts +0 -60
- package/functions/pickups.ts +0 -499
- package/functions/pills.ts +0 -205
- package/functions/player.ts +0 -1056
- package/functions/playerDataStructures.ts +0 -150
- package/functions/playerHealth.ts +0 -382
- package/functions/playerIndex.ts +0 -195
- package/functions/pocketItems.ts +0 -149
- package/functions/positionVelocity.ts +0 -188
- package/functions/random.ts +0 -77
- package/functions/revive.ts +0 -201
- package/functions/rng.ts +0 -172
- package/functions/roomData.ts +0 -199
- package/functions/roomGrid.ts +0 -109
- package/functions/roomShape.ts +0 -80
- package/functions/rooms.ts +0 -648
- package/functions/run.ts +0 -36
- package/functions/saveFile.ts +0 -128
- package/functions/seeds.ts +0 -19
- package/functions/serialization.ts +0 -91
- package/functions/set.ts +0 -95
- package/functions/sound.ts +0 -9
- package/functions/spawnCollectible.ts +0 -104
- package/functions/sprite.ts +0 -107
- package/functions/stage.ts +0 -125
- package/functions/string.ts +0 -47
- package/functions/table.ts +0 -189
- package/functions/tears.ts +0 -32
- package/functions/transformations.ts +0 -131
- package/functions/trinketCacheFlag.ts +0 -60
- package/functions/trinketGive.ts +0 -157
- package/functions/trinkets.ts +0 -215
- package/functions/tstlClass.ts +0 -157
- package/functions/types.ts +0 -36
- package/functions/ui.ts +0 -138
- package/functions/utils.ts +0 -189
- package/functions/vector.ts +0 -126
- package/index.ts +0 -172
- package/initCustomCallbacks.ts +0 -132
- package/initFeatures.ts +0 -39
- package/interfaces/AddCallbackParameterCustom.ts +0 -188
- package/interfaces/ChargeBarSprites.ts +0 -12
- package/interfaces/JSONDoor.ts +0 -13
- package/interfaces/JSONEntity.ts +0 -16
- package/interfaces/JSONRoom.ts +0 -36
- package/interfaces/JSONRooms.ts +0 -12
- package/interfaces/JSONSpawn.ts +0 -14
- package/interfaces/PlayerHealth.ts +0 -16
- package/interfaces/PocketItemDescription.ts +0 -9
- package/interfaces/SaveData.ts +0 -29
- package/interfaces/TrinketSituation.ts +0 -9
- package/interfaces/private/TSTLClassMetatable.ts +0 -8
- package/maps/PHDPillConversions.ts +0 -21
- package/maps/cardMap.ts +0 -209
- package/maps/characterMap.ts +0 -87
- package/maps/collectibleDescriptionMap.ts +0 -732
- package/maps/collectibleNameMap.ts +0 -731
- package/maps/defaultPlayerStatMap.ts +0 -17
- package/maps/falsePHDPillConversions.ts +0 -35
- package/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
- package/maps/gridEntityXMLMap.ts +0 -176
- package/maps/pillEffectMap.ts +0 -88
- package/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
- package/maps/roomTypeMap.ts +0 -40
- package/maps/trinketDescriptionMap.ts +0 -200
- package/maps/trinketNameMap.ts +0 -198
- package/objects/LRoomShapeToRectangles.ts +0 -44
- package/objects/callbackRegisterFunctions.ts +0 -187
- package/objects/cardDescriptions.ts +0 -105
- package/objects/cardNames.ts +0 -105
- package/objects/cardTypes.ts +0 -104
- package/objects/challengeNames.ts +0 -52
- package/objects/characterNames.ts +0 -48
- package/objects/coinSubTypeToValue.ts +0 -14
- package/objects/colors.ts +0 -16
- package/objects/directionNames.ts +0 -11
- package/objects/directionToDegrees.ts +0 -11
- package/objects/directionToVector.ts +0 -12
- package/objects/doorSlotFlagToDoorSlot.ts +0 -16
- package/objects/doorSlotToDirection.ts +0 -14
- package/objects/isaacAPIClassTypeToBrand.ts +0 -11
- package/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
- package/objects/languageNames.ts +0 -13
- package/objects/oppositeDoorSlots.ts +0 -15
- package/objects/pillEffectClasses.ts +0 -63
- package/objects/pillEffectNames.ts +0 -57
- package/objects/pillEffectTypes.ts +0 -62
- package/objects/roomShapeBounds.ts +0 -71
- package/objects/roomShapeLayoutSizes.ts +0 -45
- package/objects/roomShapeToBottomRightPosition.ts +0 -25
- package/objects/roomShapeToDoorSlots.ts +0 -83
- package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
- package/objects/roomShapeToGridWidth.ts +0 -21
- package/objects/roomShapeToTopLeftPosition.ts +0 -26
- package/objects/roomShapeVolumes.ts +0 -38
- package/objects/roomTypeNames.ts +0 -36
- package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
- package/objects/stageTypeToLetter.ts +0 -15
- package/objects/transformationNames.ts +0 -18
- package/patchErrorFunctions.ts +0 -92
- package/sets/LRoomShapesSet.ts +0 -8
- package/sets/bossSets.ts +0 -470
- package/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
- package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
- package/sets/charactersWithFreeDevilDealsSet.ts +0 -4
- package/sets/charactersWithNoRedHeartsSet.ts +0 -17
- package/sets/charactersWithNoSoulHeartsSet.ts +0 -14
- package/sets/chestPickupVariantsSet.ts +0 -16
- package/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
- package/sets/lostStyleCharactersSet.ts +0 -13
- package/sets/mineShaftRoomSubTypesSet.ts +0 -10
- package/sets/redHeartSubTypesSet.ts +0 -7
- package/sets/sinEntityTypesSet.ts +0 -11
- package/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
- package/sets/storyBossesSet.ts +0 -17
- package/types/AnyEntity.ts +0 -12
- package/types/AwaitingTextInput.d.ts +0 -2
- package/types/CollectibleIndex.ts +0 -16
- package/types/PickingUpItem.ts +0 -89
- package/types/PlayerIndex.ts +0 -13
- package/types/private/IsaacAPIClass.ts +0 -3
- package/types/private/SerializedIsaacAPIClass.ts +0 -3
- package/types/private/TSTLClass.ts +0 -3
- package/upgradeMod.ts +0 -55
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { TrinketType } from "isaac-typescript-definitions";
|
|
2
|
-
|
|
3
|
-
export type PostTrinketBreakRegisterParameters = [
|
|
4
|
-
callback: (player: EntityPlayer, trinketType: TrinketType) => void,
|
|
5
|
-
trinketType?: TrinketType,
|
|
6
|
-
];
|
|
7
|
-
|
|
8
|
-
const subscriptions: PostTrinketBreakRegisterParameters[] = [];
|
|
9
|
-
|
|
10
|
-
/** @internal */
|
|
11
|
-
export function postTrinketBreakHasSubscriptions(): boolean {
|
|
12
|
-
return subscriptions.length > 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export function postTrinketBreakRegister(
|
|
17
|
-
...args: PostTrinketBreakRegisterParameters
|
|
18
|
-
): void {
|
|
19
|
-
subscriptions.push(args);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** @internal */
|
|
23
|
-
export function postTrinketBreakFire(
|
|
24
|
-
player: EntityPlayer,
|
|
25
|
-
trinketType: TrinketType,
|
|
26
|
-
): void {
|
|
27
|
-
for (const [callback, callbackTrinketType] of subscriptions) {
|
|
28
|
-
// Handle the optional 2nd callback argument.
|
|
29
|
-
if (
|
|
30
|
-
callbackTrinketType !== undefined &&
|
|
31
|
-
callbackTrinketType !== trinketType
|
|
32
|
-
) {
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
callback(player, trinketType);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
|
|
2
|
-
|
|
3
|
-
export type PreBerserkDeathRegisterParameters = [
|
|
4
|
-
callback: (player: EntityPlayer) => void,
|
|
5
|
-
playerVariant?: PlayerVariant,
|
|
6
|
-
character?: PlayerType,
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
const subscriptions: PreBerserkDeathRegisterParameters[] = [];
|
|
10
|
-
|
|
11
|
-
/** @internal */
|
|
12
|
-
export function preBerserkDeathHasSubscriptions(): boolean {
|
|
13
|
-
return subscriptions.length > 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export function preBerserkDeathRegister(
|
|
18
|
-
...args: PreBerserkDeathRegisterParameters
|
|
19
|
-
): void {
|
|
20
|
-
subscriptions.push(args);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/** @internal */
|
|
24
|
-
export function preBerserkDeathFire(player: EntityPlayer): void {
|
|
25
|
-
const character = player.GetPlayerType();
|
|
26
|
-
|
|
27
|
-
for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
|
|
28
|
-
// Handle the optional 2nd callback argument.
|
|
29
|
-
if (playerVariant !== undefined && playerVariant !== player.Variant) {
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Handle the optional 3rd callback argument.
|
|
34
|
-
if (callbackCharacter !== undefined && callbackCharacter !== character) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
callback(player);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { PlayerType, PlayerVariant } from "isaac-typescript-definitions";
|
|
2
|
-
|
|
3
|
-
export type PreCustomReviveRegisterParameters = [
|
|
4
|
-
callback: (player: EntityPlayer) => int | undefined,
|
|
5
|
-
playerVariant?: PlayerVariant,
|
|
6
|
-
character?: PlayerType,
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
const subscriptions: PreCustomReviveRegisterParameters[] = [];
|
|
10
|
-
|
|
11
|
-
/** @internal */
|
|
12
|
-
export function preCustomReviveHasSubscriptions(): boolean {
|
|
13
|
-
return subscriptions.length > 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export function preCustomReviveRegister(
|
|
18
|
-
...args: PreCustomReviveRegisterParameters
|
|
19
|
-
): void {
|
|
20
|
-
subscriptions.push(args);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/** @internal */
|
|
24
|
-
export function preCustomReviveFire(player: EntityPlayer): int | undefined {
|
|
25
|
-
const character = player.GetPlayerType();
|
|
26
|
-
|
|
27
|
-
for (const [callback, playerVariant, callbackCharacter] of subscriptions) {
|
|
28
|
-
// Handle the optional 2nd callback argument.
|
|
29
|
-
if (playerVariant !== undefined && playerVariant !== player.Variant) {
|
|
30
|
-
continue;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Handle the optional 3rd callback argument.
|
|
34
|
-
if (callbackCharacter !== undefined && callbackCharacter !== character) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const revivalType = callback(player);
|
|
39
|
-
|
|
40
|
-
if (revivalType !== undefined) {
|
|
41
|
-
return revivalType;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return undefined;
|
|
46
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CollectibleType,
|
|
3
|
-
ItemType,
|
|
4
|
-
TrinketType,
|
|
5
|
-
} from "isaac-typescript-definitions";
|
|
6
|
-
import {
|
|
7
|
-
PickingUpItem,
|
|
8
|
-
PickingUpItemCollectible,
|
|
9
|
-
PickingUpItemTrinket,
|
|
10
|
-
} from "../../types/PickingUpItem";
|
|
11
|
-
|
|
12
|
-
export type PreItemPickupRegisterParameters =
|
|
13
|
-
| [callback: (player: EntityPlayer, pickingUpItem: PickingUpItem) => void]
|
|
14
|
-
| [
|
|
15
|
-
callback: (
|
|
16
|
-
player: EntityPlayer,
|
|
17
|
-
pickingUpItem: PickingUpItemCollectible,
|
|
18
|
-
) => void,
|
|
19
|
-
itemType: ItemType.PASSIVE | ItemType.ACTIVE | ItemType.FAMILIAR,
|
|
20
|
-
collectibleType?: CollectibleType,
|
|
21
|
-
]
|
|
22
|
-
| [
|
|
23
|
-
callback: (
|
|
24
|
-
player: EntityPlayer,
|
|
25
|
-
pickingUpItem: PickingUpItemTrinket,
|
|
26
|
-
) => void,
|
|
27
|
-
itemType: ItemType.TRINKET,
|
|
28
|
-
trinketType?: TrinketType,
|
|
29
|
-
];
|
|
30
|
-
|
|
31
|
-
const subscriptions: PreItemPickupRegisterParameters[] = [];
|
|
32
|
-
|
|
33
|
-
/** @internal */
|
|
34
|
-
export function preItemPickupHasSubscriptions(): boolean {
|
|
35
|
-
return subscriptions.length > 0;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/** @internal */
|
|
39
|
-
export function preItemPickupRegister(
|
|
40
|
-
...args: PreItemPickupRegisterParameters
|
|
41
|
-
): void {
|
|
42
|
-
subscriptions.push(args);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** @internal */
|
|
46
|
-
export function preItemPickupFire(
|
|
47
|
-
player: EntityPlayer,
|
|
48
|
-
pickingUpItem: PickingUpItem,
|
|
49
|
-
): void {
|
|
50
|
-
for (const [callback, itemType, subType] of subscriptions) {
|
|
51
|
-
// Handle the optional 2nd callback argument.
|
|
52
|
-
if (itemType !== undefined && itemType !== pickingUpItem.itemType) {
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Handle the optional 3rd callback argument.
|
|
57
|
-
if (subType !== undefined && subType !== pickingUpItem.subType) {
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// @ts-expect-error TypeScript isn't smart enough to treat the above checks as type narrowing.
|
|
62
|
-
callback(player, pickingUpItem);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export type PreNewLevelRegisterParameters = [
|
|
2
|
-
callback: (player: EntityPlayer) => void,
|
|
3
|
-
];
|
|
4
|
-
|
|
5
|
-
const subscriptions: PreNewLevelRegisterParameters[] = [];
|
|
6
|
-
|
|
7
|
-
/** @internal */
|
|
8
|
-
export function preNewLevelHasSubscriptions(): boolean {
|
|
9
|
-
return subscriptions.length > 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** @internal */
|
|
13
|
-
export function preNewLevelRegister(
|
|
14
|
-
...args: PreNewLevelRegisterParameters
|
|
15
|
-
): void {
|
|
16
|
-
subscriptions.push(args);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/** @internal */
|
|
20
|
-
export function preNewLevelFire(player: EntityPlayer): void {
|
|
21
|
-
for (const [callback] of subscriptions) {
|
|
22
|
-
callback(player);
|
|
23
|
-
}
|
|
24
|
-
}
|
package/classes/DefaultMap.ts
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/* eslint-disable sort-exports/sort-exports */
|
|
2
|
-
|
|
3
|
-
import { isFunction, isPrimitive } from "../functions/types";
|
|
4
|
-
|
|
5
|
-
// eslint-disable-next-line isaacscript/complete-sentences-jsdoc
|
|
6
|
-
/**
|
|
7
|
-
* A function that creates the default value for your `DefaultMap`. For example, if it was a
|
|
8
|
-
* `DefaultMap` containing maps, the factory function would be: `() => new Map()`
|
|
9
|
-
*/
|
|
10
|
-
export type FactoryFunction<V, Args extends unknown[]> = (
|
|
11
|
-
...extraArgs: Args
|
|
12
|
-
) => V;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* `DefaultMap` is a data structure that makes working with default values easier.
|
|
16
|
-
*
|
|
17
|
-
* It is a common pattern to look up a value in a `Map`, and then, if the value does not exist, set
|
|
18
|
-
* a default value for the key, and then return the default value. `DefaultMap` abstracts this
|
|
19
|
-
* operation away by providing the `getAndSetDefault` method.
|
|
20
|
-
*
|
|
21
|
-
* Using a `DefaultMap` is nice because it makes code more declarative, since you specify what the
|
|
22
|
-
* default value is alongside the types of the keys/values.
|
|
23
|
-
*
|
|
24
|
-
* When instantiating a new `DefaultMap`, you must specify default value as the first argument. (The
|
|
25
|
-
* default value is the initial value that will be assigned to every new entry in the
|
|
26
|
-
* `getAndSetDefault` method.) For example:
|
|
27
|
-
*
|
|
28
|
-
* ```ts
|
|
29
|
-
* // Initializes a new empty DefaultMap with a default value of "foo".
|
|
30
|
-
* const defaultMapWithString = new DefaultMap<string, string>("foo");
|
|
31
|
-
*
|
|
32
|
-
* const value = defaultMapWithString.getAndSetDefault("bar");
|
|
33
|
-
* // value is now "foo" and an entry for "bar" is now set.
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* Sometimes, instead of having a static initial value for every entry in the map, you will want a
|
|
37
|
-
* dynamic initial value that is contingent upon the key or some other variable. In these cases, you
|
|
38
|
-
* can instead specify that the `DefaultMap` should run a function that will return the initial
|
|
39
|
-
* value. (This is referred to as a "factory function".) For example:
|
|
40
|
-
*
|
|
41
|
-
* ```ts
|
|
42
|
-
* // Initializes a new empty DefaultMap with a default value based on "someGlobalVariable".
|
|
43
|
-
* const factoryFunction = () => someGlobalVariable ? 0 : 1;
|
|
44
|
-
* const defaultMapWithFactoryFunction = new DefaultMap<string, string>(factoryFunction);
|
|
45
|
-
* ```
|
|
46
|
-
*
|
|
47
|
-
* Note that in TypeScript and Lua, booleans, numbers, and strings are "passed by value". This means
|
|
48
|
-
* that when the `DefaultMap` creates a new entry, if the default value is one of these 3 types, the
|
|
49
|
-
* values will be copied. On the other hand, arrays and maps and other complex data structures are
|
|
50
|
-
* "passed by reference". This means that when the `DefaultMap` creates a new entry, if the default
|
|
51
|
-
* value is an array, then it would not be copied. Instead, the same shared array would be assigned
|
|
52
|
-
* to every entry. Thus, to solve this problem, any variable that is passed by reference must be
|
|
53
|
-
* created using a factory function to ensure that each copy is unique. For example:
|
|
54
|
-
*
|
|
55
|
-
* ```ts
|
|
56
|
-
* // Initializes a new empty DefaultMap with a default value of a new empty array.
|
|
57
|
-
* const factoryFunction = () => [];
|
|
58
|
-
* const defaultMapWithArray = new DefaultMap<string, string[]>(factoryFunction);
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* In the previous two examples, the factory functions did not have any arguments. But you can also
|
|
62
|
-
* specify a factory function that takes one or more arguments:
|
|
63
|
-
*
|
|
64
|
-
* ```ts
|
|
65
|
-
* const factoryFunction = (arg: boolean) => arg ? 0 : 1;
|
|
66
|
-
* const defaultMapWithArg = new DefaultMap<string, string, [arg: boolean]>(factoryFunction);
|
|
67
|
-
* ```
|
|
68
|
-
*
|
|
69
|
-
* Similar to a normal `Map`, you can also include an initializer list in the constructor as the
|
|
70
|
-
* second argument:
|
|
71
|
-
*
|
|
72
|
-
* ```ts
|
|
73
|
-
* // Initializes a DefaultMap with a default value of "foo" and some initial values.
|
|
74
|
-
* const defaultMapWithInitialValues = new DefaultMap<string, string>("foo", [
|
|
75
|
-
* ["a1", "a2"],
|
|
76
|
-
* ["b1", "b2"],
|
|
77
|
-
* ], );
|
|
78
|
-
* ```
|
|
79
|
-
*
|
|
80
|
-
* Finally, note that `DefaultMap` has the following additional utility methods:
|
|
81
|
-
*
|
|
82
|
-
* - `getAndSetDefault` - The method that is called inside the overridden `get` method. In most
|
|
83
|
-
* cases, you can use the overridden `get` method instead of calling this function directly.
|
|
84
|
-
* However, if a factory function was provided during instantiation, and the factory function has
|
|
85
|
-
* one or more arguments, then you must call this method instead (and provide the corresponding
|
|
86
|
-
* arguments).
|
|
87
|
-
* - `getWithoutDefault` - Calls the original `Map.get` function (without setting the default
|
|
88
|
-
* value).
|
|
89
|
-
* - `getDefaultValue` - Returns the default value to be used for a new key. (If a factory function
|
|
90
|
-
* was provided during instantiation, this will execute the factory function.)
|
|
91
|
-
* - `getConstructorArg` - Helper method for cloning the map. Returns either the default value or
|
|
92
|
-
* the reference to the factory function.
|
|
93
|
-
*/
|
|
94
|
-
export class DefaultMap<Key, Value, Args extends unknown[] = []> extends Map<
|
|
95
|
-
Key,
|
|
96
|
-
Value
|
|
97
|
-
> {
|
|
98
|
-
private defaultValue: Value | undefined;
|
|
99
|
-
private defaultValueFactory: FactoryFunction<Value, Args> | undefined;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* See the main `DefaultMap` documentation:
|
|
103
|
-
* https://isaacscript.github.io/isaacscript-common/classes/classes_DefaultMap.DefaultMap
|
|
104
|
-
*/
|
|
105
|
-
constructor(
|
|
106
|
-
defaultValueOrFactoryFunction: Value | FactoryFunction<Value, Args>,
|
|
107
|
-
initializerArray?: Iterable<[Key, Value]>,
|
|
108
|
-
) {
|
|
109
|
-
const argIsPrimitive = isPrimitive(defaultValueOrFactoryFunction);
|
|
110
|
-
const argIsFunction = isFunction(defaultValueOrFactoryFunction);
|
|
111
|
-
if (!argIsPrimitive && !argIsFunction) {
|
|
112
|
-
error(
|
|
113
|
-
`Failed to instantiate a DefaultMap since the provided default value was of type "${typeof defaultValueOrFactoryFunction}". This error usually means that you are trying to use an array (or some other non-primitive data structure that is passed by reference) as the default value. Instead, return the data structure in a factory function, like "() => []". See the DefaultMap documentation for more details.`,
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
super(initializerArray);
|
|
118
|
-
|
|
119
|
-
if (argIsFunction) {
|
|
120
|
-
this.defaultValue = undefined;
|
|
121
|
-
this.defaultValueFactory = defaultValueOrFactoryFunction;
|
|
122
|
-
} else {
|
|
123
|
-
this.defaultValue = defaultValueOrFactoryFunction as Value;
|
|
124
|
-
this.defaultValueFactory = undefined;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* If the key exists, this will return the same thing as the normal `Map.get` method. Otherwise,
|
|
130
|
-
* it will set a default value for the provided key, and then return the default value.
|
|
131
|
-
*/
|
|
132
|
-
getAndSetDefault(key: Key, ...extraArgs: Args): Value {
|
|
133
|
-
const value = super.get(key);
|
|
134
|
-
if (value !== undefined) {
|
|
135
|
-
return value;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
const defaultValue = this.getDefaultValue(...extraArgs);
|
|
139
|
-
this.set(key, defaultValue);
|
|
140
|
-
return defaultValue;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Returns the default value to be used for a new key. (If a factory function was provided during
|
|
145
|
-
* instantiation, this will execute the factory function.)
|
|
146
|
-
*/
|
|
147
|
-
getDefaultValue(...extraArgs: Args): Value {
|
|
148
|
-
if (this.defaultValue !== undefined) {
|
|
149
|
-
return this.defaultValue;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (this.defaultValueFactory !== undefined) {
|
|
153
|
-
return this.defaultValueFactory(...extraArgs);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
return error("A DefaultMap was incorrectly instantiated.");
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Helper method for cloning the map. Returns either the default value or a reference to the
|
|
161
|
-
* factory function.
|
|
162
|
-
*/
|
|
163
|
-
getConstructorArg(): Value | FactoryFunction<Value, Args> {
|
|
164
|
-
if (this.defaultValue !== undefined) {
|
|
165
|
-
return this.defaultValue;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (this.defaultValueFactory !== undefined) {
|
|
169
|
-
return this.defaultValueFactory;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return error("A DefaultMap was incorrectly instantiated.");
|
|
173
|
-
}
|
|
174
|
-
}
|
package/classes/ModUpgraded.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { ModCallbackCustom } from "../enums/ModCallbackCustom";
|
|
3
|
-
import { AddCallbackParameterCustom } from "../interfaces/AddCallbackParameterCustom";
|
|
4
|
-
import { CALLBACK_REGISTER_FUNCTIONS } from "../objects/callbackRegisterFunctions";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* `isaacscript-common` has many custom callbacks that you can use in your mods. Instead of
|
|
8
|
-
* hijacking the vanilla `Mod` object, we provide a `ModUpgraded` object for you to use, which
|
|
9
|
-
* extends the base class and adds a new method of `AddCallbackCustom`.
|
|
10
|
-
*
|
|
11
|
-
* To upgrade your mod, use the `upgradeMod` helper function.
|
|
12
|
-
*/
|
|
13
|
-
export class ModUpgraded implements Mod {
|
|
14
|
-
// -----------------
|
|
15
|
-
// Vanilla variables
|
|
16
|
-
// -----------------
|
|
17
|
-
|
|
18
|
-
Name: string; // The vanilla mod object stores this for some reason
|
|
19
|
-
|
|
20
|
-
// ----------------
|
|
21
|
-
// Custom variables
|
|
22
|
-
// ----------------
|
|
23
|
-
|
|
24
|
-
/** We store a copy of the original mod object so that we can re-implement its functions. */
|
|
25
|
-
Mod: Mod;
|
|
26
|
-
|
|
27
|
-
constructor(mod: Mod) {
|
|
28
|
-
this.Name = mod.Name;
|
|
29
|
-
|
|
30
|
-
this.Mod = mod;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// ---------------
|
|
34
|
-
// Vanilla methods
|
|
35
|
-
// ---------------
|
|
36
|
-
|
|
37
|
-
AddCallback<T extends ModCallback>(
|
|
38
|
-
modCallback: T,
|
|
39
|
-
...args: AddCallbackParameter[T]
|
|
40
|
-
): void {
|
|
41
|
-
this.Mod.AddCallback(modCallback, ...args);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
HasData(): boolean {
|
|
45
|
-
return this.Mod.HasData();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
LoadData(): string {
|
|
49
|
-
return this.Mod.LoadData();
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* This method does not care about the tertiary argument. Regardless of the conditions of how you
|
|
54
|
-
* registered the callback, it will be removed.
|
|
55
|
-
*/
|
|
56
|
-
RemoveCallback<T extends ModCallback>(
|
|
57
|
-
modCallback: T,
|
|
58
|
-
callback: AddCallbackParameter[T][0],
|
|
59
|
-
): void {
|
|
60
|
-
this.Mod.RemoveCallback(modCallback, callback);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
RemoveData(): void {
|
|
64
|
-
this.Mod.RemoveData();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
SaveData(data: string): void {
|
|
68
|
-
this.Mod.SaveData(data);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// --------------
|
|
72
|
-
// Custom methods
|
|
73
|
-
// --------------
|
|
74
|
-
|
|
75
|
-
// eslint-disable-next-line class-methods-use-this
|
|
76
|
-
AddCallbackCustom<T extends ModCallbackCustom>(
|
|
77
|
-
modCallbackCustom: T,
|
|
78
|
-
...args: AddCallbackParameterCustom[T]
|
|
79
|
-
): void {
|
|
80
|
-
const callbackRegisterFunction =
|
|
81
|
-
CALLBACK_REGISTER_FUNCTIONS[modCallbackCustom];
|
|
82
|
-
callbackRegisterFunction(...args);
|
|
83
|
-
}
|
|
84
|
-
}
|
package/constants.ts
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Constants
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
CollectibleType,
|
|
7
|
-
Dimension,
|
|
8
|
-
ItemPoolType,
|
|
9
|
-
LevelStage,
|
|
10
|
-
RoomType,
|
|
11
|
-
TrinketSlot,
|
|
12
|
-
} from "isaac-typescript-definitions";
|
|
13
|
-
import { NUM_NORMAL_PILL_COLORS } from "./constantsFirstLast";
|
|
14
|
-
import { getEnumLength, getLastEnumValue } from "./functions/enums";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The distance of the laser when Azazel does not have any range up items yet. For more info, see
|
|
18
|
-
* the documentation for the `getAzazelBrimstoneDistance` function.
|
|
19
|
-
*/
|
|
20
|
-
export const AZAZEL_DEFAULT_BRIMSTONE_DISTANCE = 75.125;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* The path to the png file for collectible items during Curse of the Blind, making them appear with
|
|
24
|
-
* a red question mark.
|
|
25
|
-
*/
|
|
26
|
-
export const BLIND_ITEM_PNG_PATH = "gfx/items/collectibles/questionmark.png";
|
|
27
|
-
|
|
28
|
-
/** Bombs explode when their frame count is equal to this value. */
|
|
29
|
-
export const BOMB_EXPLODE_FRAME = 45;
|
|
30
|
-
|
|
31
|
-
/** This is the initial value of the `EntityPickup.Wait` property after a collectible is spawned. */
|
|
32
|
-
export const COLLECTIBLE_INITIAL_WAIT = 20;
|
|
33
|
-
|
|
34
|
-
export const DEFAULT_ITEM_POOL_TYPE = ItemPoolType.TREASURE;
|
|
35
|
-
|
|
36
|
-
/** This is also the distance that a player spawns from the door that they enter a room from. */
|
|
37
|
-
export const DISTANCE_OF_GRID_TILE = 40;
|
|
38
|
-
|
|
39
|
-
export const DOOR_HITBOX_RADIUS = 11;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* When Eggies take fatal damage, they go into NpcState.STATE_SUICIDE and spawn 14 Swarm Spiders
|
|
43
|
-
* while their StateFrame ticks upwards. The 14th spider appears when the StateFrame is at this
|
|
44
|
-
* value.
|
|
45
|
-
*/
|
|
46
|
-
export const EGGY_STATE_FRAME_OF_FINAL_SPIDER = 45;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* A non-existent or completely transparent PNG file for use in clearing sprites. For more
|
|
50
|
-
* information, see the documentation for the `clearSprite` helper function.
|
|
51
|
-
*/
|
|
52
|
-
export const EMPTY_PNG_PATH = "gfx/none.png";
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* The random items that appear when the player has TMTRAINER are generated on the fly as they are
|
|
56
|
-
* encountered by the player. The first TMTRAINER item takes the final possible 32 bit number. The
|
|
57
|
-
* second TMTRAINER item subtracts one from that, and so on.
|
|
58
|
-
*/
|
|
59
|
-
export const FIRST_GLITCHED_COLLECTIBLE_TYPE = ((1 << 32) -
|
|
60
|
-
1) as CollectibleType;
|
|
61
|
-
|
|
62
|
-
export const GAME_FRAMES_PER_SECOND = 30;
|
|
63
|
-
export const GRID_INDEX_CENTER_OF_1X1_ROOM = 67;
|
|
64
|
-
export const ISAAC_FRAMES_PER_SECOND = 60;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* The floor is represented by a 13x13 grid. Room indexes start at 0. The first column is
|
|
68
|
-
* represented by grid indexes 0, 13, 26, and so on.
|
|
69
|
-
*/
|
|
70
|
-
export const LEVEL_GRID_COLUMN_HEIGHT = 13;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* The floor is represented by a 13x13 grid. Room indexes start at 0. The first row is represented
|
|
74
|
-
* by grid indexes from 0 to 12. The second row is represented by grid indexes from 13 to 25, and so
|
|
75
|
-
* on.
|
|
76
|
-
*/
|
|
77
|
-
export const LEVEL_GRID_ROW_WIDTH = 13;
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* The floor is represented by a 13x13 grid. Room indexes start at 0. The first row is represented
|
|
81
|
-
* by grid indexes from 0 to 12. The second row is represented by grid indexes from 13 to 25, and so
|
|
82
|
-
* on. The maximum room index possible is 168. (It is not 169 because we start at 0 instead of 1.)
|
|
83
|
-
*/
|
|
84
|
-
export const MAX_LEVEL_GRID_INDEX = 168;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* The game has a limit on the number of currently spawned familiars and will refuse to spawn any
|
|
88
|
-
* more if it reaches the limit. Blue flies and blue spiders have a lower priority and will be
|
|
89
|
-
* deleted to make room for other familiars.
|
|
90
|
-
*/
|
|
91
|
-
export const MAX_NUM_FAMILIARS = 64;
|
|
92
|
-
|
|
93
|
-
/** The game can only handle up to four different players. */
|
|
94
|
-
export const MAX_NUM_INPUTS = 4;
|
|
95
|
-
|
|
96
|
-
/** With Birthright, it is possible for Magdalene to have 18 heart containers. */
|
|
97
|
-
export const MAX_PLAYER_HEART_CONTAINERS = 18;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* As the player continues to move in a direction, they will accelerate. When going from one wall to
|
|
101
|
-
* another in a 2x2 room at 2.0 speed (the maximum that the speed stat can rise to), the amount of
|
|
102
|
-
* units moved per update frame will climb to around 9.797 as they hit the opposite wall. The
|
|
103
|
-
* constant specifies a value of 9.8 to be safe.
|
|
104
|
-
*/
|
|
105
|
-
export const MAX_PLAYER_SPEED_IN_UNITS = 9.8;
|
|
106
|
-
|
|
107
|
-
export const MAX_PLAYER_TRINKET_SLOTS = getEnumLength(TrinketSlot);
|
|
108
|
-
|
|
109
|
-
/** If you set `EntityPlayer.ShotSpeed` lower than this value, it will have no effect. */
|
|
110
|
-
export const MIN_PLAYER_SHOT_SPEED_STAT = 0.6;
|
|
111
|
-
|
|
112
|
-
/** If you set `EntityPlayer.Speed` lower than this value, it will have no effect. */
|
|
113
|
-
export const MIN_PLAYER_SPEED_STAT = 0.1;
|
|
114
|
-
|
|
115
|
-
export const FIRST_ROOM_TYPE = RoomType.DEFAULT; // eslint-disable-line sort-exports/sort-exports
|
|
116
|
-
export const LAST_ROOM_TYPE = getLastEnumValue(RoomType);
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* The maximum speed stat that a player can have. Any additional speed beyond this will not take
|
|
120
|
-
* effect.
|
|
121
|
-
*/
|
|
122
|
-
export const MAX_SPEED_STAT = 2.0;
|
|
123
|
-
|
|
124
|
-
export const FIRST_STAGE = LevelStage.BASEMENT_1; // eslint-disable-line sort-exports/sort-exports
|
|
125
|
-
export const LAST_STAGE = getLastEnumValue(LevelStage);
|
|
126
|
-
|
|
127
|
-
/** Corresponds to the maximum value for `EntityPlayer.SamsonBerserkCharge`. */
|
|
128
|
-
export const MAX_TAINTED_SAMSON_BERSERK_CHARGE = 100000;
|
|
129
|
-
|
|
130
|
-
export const NUM_DIMENSIONS = getEnumLength(Dimension) - 1; // Account for "Dimension.CURRENT"
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* The pill pool for each run is comprised of one effect for each unique pill color (minus gold and
|
|
134
|
-
* horse pills.)
|
|
135
|
-
*/
|
|
136
|
-
export const NUM_PILLS_IN_POOL = NUM_NORMAL_PILL_COLORS;
|
|
137
|
-
|
|
138
|
-
export const SECOND_IN_MILLISECONDS = 1000;
|
|
139
|
-
export const MINUTE_IN_MILLISECONDS = 60 * SECOND_IN_MILLISECONDS; // eslint-disable-line sort-exports/sort-exports
|
|
140
|
-
|
|
141
|
-
export const ONE_BY_ONE_ROOM_GRID_SIZE = 135;
|
|
142
|
-
|
|
143
|
-
/** After taking damage, `EntityPlayer.SamsonBerserkCharge` is incremented by this amount. */
|
|
144
|
-
export const TAINTED_SAMSON_BERSERK_CHARGE_FROM_TAKING_DAMAGE = 10000;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* This is the number of draw coordinates that each heart spans on the UI in the upper left hand
|
|
148
|
-
* corner.
|
|
149
|
-
*/
|
|
150
|
-
export const UI_HEART_WIDTH = 12;
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* This is a safer version of the `Vector.One` constant. (Other mods can mutate this `Vector.One`,
|
|
154
|
-
* so it is not safe to use.)
|
|
155
|
-
*/
|
|
156
|
-
export const VectorOne: Readonly<Vector> = Vector(1, 1);
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* This is a safer version of the `Vector.Zero` constant. (Other mods can mutate `Vector.Zero`
|
|
160
|
-
* vector, so it is not safe to use.)
|
|
161
|
-
*/
|
|
162
|
-
export const VectorZero: Readonly<Vector> = Vector(0, 0);
|