isaacscript-common 87.5.0 → 87.6.0
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/README.md +1 -1
- package/dist/callbackClasses.d.ts +7 -6
- package/dist/callbackClasses.d.ts.map +1 -1
- package/dist/callbackClasses.js +17 -15
- package/dist/callbackClasses.lua +163 -300
- package/dist/callbacks.d.ts +118 -117
- package/dist/callbacks.d.ts.map +1 -1
- package/dist/callbacks.js +19 -9
- package/dist/callbacks.lua +1 -0
- package/dist/classes/DefaultMap.d.ts +5 -1
- package/dist/classes/DefaultMap.d.ts.map +1 -1
- package/dist/classes/ModFeature.js +3 -3
- package/dist/classes/ModUpgraded.d.ts.map +1 -1
- package/dist/classes/ModUpgraded.js +4 -6
- package/dist/classes/callbacks/InputActionFilter.d.ts +2 -2
- package/dist/classes/callbacks/InputActionFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/InputActionFilter.js +3 -3
- package/dist/classes/callbacks/InputActionPlayer.d.ts +2 -2
- package/dist/classes/callbacks/InputActionPlayer.d.ts.map +1 -1
- package/dist/classes/callbacks/InputActionPlayer.js +6 -6
- package/dist/classes/callbacks/PostBoneSwing.js +2 -2
- package/dist/classes/callbacks/PostCollectibleEmpty.d.ts +2 -2
- package/dist/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -1
- package/dist/classes/callbacks/PostCollectibleEmpty.js +3 -5
- package/dist/classes/callbacks/PostCursedTeleport.js +5 -5
- package/dist/classes/callbacks/PostCustomRevive.d.ts +2 -4
- package/dist/classes/callbacks/PostCustomRevive.d.ts.map +1 -1
- package/dist/classes/callbacks/PostDiceRoomActivated.d.ts +2 -3
- package/dist/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -1
- package/dist/classes/callbacks/PostDiceRoomActivated.js +2 -2
- package/dist/classes/callbacks/PostEntityRemoveFilter.d.ts +9 -0
- package/dist/classes/callbacks/PostEntityRemoveFilter.d.ts.map +1 -0
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +21 -0
- package/dist/classes/callbacks/PostEntityRemoveFilter.lua +23 -0
- package/dist/classes/callbacks/PostGridEntityCollision.d.ts +2 -4
- package/dist/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCollision.js +10 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts +2 -4
- package/dist/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +8 -8
- package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts +2 -3
- package/dist/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +2 -2
- package/dist/classes/callbacks/PostGridEntityRemove.d.ts +2 -2
- package/dist/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -1
- package/dist/classes/callbacks/PostGridEntityRemove.js +3 -3
- package/dist/classes/callbacks/PostItemDischarge.d.ts +2 -2
- package/dist/classes/callbacks/PostItemDischarge.d.ts.map +1 -1
- package/dist/classes/callbacks/PostItemDischarge.js +5 -8
- package/dist/classes/callbacks/PostKeyboardChanged.d.ts +2 -1
- package/dist/classes/callbacks/PostKeyboardChanged.d.ts.map +1 -1
- package/dist/classes/callbacks/PostKeyboardChanged.js +2 -2
- package/dist/classes/callbacks/PostNewRoomEarly.js +3 -3
- package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts +2 -2
- package/dist/classes/callbacks/PostPickupSelectionFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -3
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +2 -2
- package/dist/classes/callbacks/PostPlayerChangeType.js +1 -1
- package/dist/classes/callbacks/PostPurchase.d.ts +2 -4
- package/dist/classes/callbacks/PostPurchase.d.ts.map +1 -1
- package/dist/classes/callbacks/PostPurchase.js +9 -9
- package/dist/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTransformation.d.ts +2 -2
- package/dist/classes/callbacks/PostTransformation.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTransformation.js +1 -3
- package/dist/classes/callbacks/PostTrinketBreak.d.ts.map +1 -1
- package/dist/classes/callbacks/PostTrinketBreak.js +1 -3
- package/dist/classes/callbacks/PostUsePillFilter.js +2 -2
- package/dist/classes/callbacks/PreBerserkDeath.js +4 -4
- package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts +2 -2
- package/dist/classes/callbacks/PreEntitySpawnFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +3 -3
- package/dist/classes/callbacks/PreNewLevel.d.ts.map +1 -1
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts +2 -2
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.d.ts.map +1 -1
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +5 -5
- package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts +1 -1
- package/dist/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +2 -2
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +9 -11
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +4 -4
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +4 -4
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +2 -2
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +0 -1
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -1
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +4 -4
- package/dist/classes/features/other/CustomPickups.d.ts.map +1 -1
- package/dist/classes/features/other/CustomPickups.js +1 -0
- package/dist/classes/features/other/CustomStages.js +19 -9
- package/dist/classes/features/other/CustomTrapdoors.d.ts.map +1 -1
- package/dist/classes/features/other/CustomTrapdoors.js +44 -38
- package/dist/classes/features/other/CustomTrapdoors.lua +14 -7
- package/dist/classes/features/other/DebugDisplay.d.ts +0 -18
- package/dist/classes/features/other/DebugDisplay.d.ts.map +1 -1
- package/dist/classes/features/other/DeployJSONRoom.d.ts +0 -2
- package/dist/classes/features/other/DeployJSONRoom.d.ts.map +1 -1
- package/dist/classes/features/other/DeployJSONRoom.js +6 -4
- package/dist/classes/features/other/DisableInputs.js +3 -3
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts +1 -1
- package/dist/classes/features/other/EdenStartingStatsHealth.d.ts.map +1 -1
- package/dist/classes/features/other/ExtraConsoleCommands.d.ts +14 -10
- package/dist/classes/features/other/ExtraConsoleCommands.d.ts.map +1 -1
- package/dist/classes/features/other/ExtraConsoleCommands.js +31 -17
- package/dist/classes/features/other/ExtraConsoleCommands.lua +2 -1
- package/dist/classes/features/other/FlyingDetection.d.ts +0 -1
- package/dist/classes/features/other/FlyingDetection.d.ts.map +1 -1
- package/dist/classes/features/other/ForgottenSwitch.d.ts +0 -1
- package/dist/classes/features/other/ForgottenSwitch.d.ts.map +1 -1
- package/dist/classes/features/other/ModdedElementDetection.js +4 -4
- package/dist/classes/features/other/ModdedElementSets.d.ts +2 -2
- package/dist/classes/features/other/ModdedElementSets.d.ts.map +1 -1
- package/dist/classes/features/other/ModdedElementSets.js +3 -3
- package/dist/classes/features/other/NoSirenSteal.js +4 -4
- package/dist/classes/features/other/PickupIndexCreation.d.ts +0 -1
- package/dist/classes/features/other/PickupIndexCreation.d.ts.map +1 -1
- package/dist/classes/features/other/PickupIndexCreation.js +7 -8
- package/dist/classes/features/other/PickupIndexCreation.lua +10 -10
- package/dist/classes/features/other/PonyDetection.d.ts +0 -1
- package/dist/classes/features/other/PonyDetection.d.ts.map +1 -1
- package/dist/classes/features/other/PonyDetection.js +2 -2
- package/dist/classes/features/other/PressInput.js +2 -2
- package/dist/classes/features/other/PreventChildEntities.d.ts +0 -1
- package/dist/classes/features/other/PreventChildEntities.d.ts.map +1 -1
- package/dist/classes/features/other/PreventChildEntities.js +4 -4
- package/dist/classes/features/other/RoomClearFrame.d.ts +0 -1
- package/dist/classes/features/other/RoomClearFrame.d.ts.map +1 -1
- package/dist/classes/features/other/RoomHistory.d.ts +0 -1
- package/dist/classes/features/other/RoomHistory.d.ts.map +1 -1
- package/dist/classes/features/other/RoomHistory.js +5 -5
- package/dist/classes/features/other/RunInNFrames.js +2 -2
- package/dist/classes/features/other/SaveDataManager.js +3 -3
- package/dist/classes/features/other/SpawnRockAltRewards.d.ts +0 -4
- package/dist/classes/features/other/SpawnRockAltRewards.d.ts.map +1 -1
- package/dist/classes/features/other/StageHistory.js +2 -2
- package/dist/classes/features/other/StartAmbush.js +2 -2
- package/dist/classes/features/other/TaintedLazarusPlayers.d.ts +0 -1
- package/dist/classes/features/other/TaintedLazarusPlayers.d.ts.map +1 -1
- package/dist/classes/features/other/TaintedLazarusPlayers.js +2 -2
- package/dist/classes/features/other/customStages/backdrop.js +2 -3
- package/dist/classes/features/other/customStages/constants.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/gridEntities.d.ts +0 -1
- package/dist/classes/features/other/customStages/gridEntities.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/gridEntities.js +9 -10
- package/dist/classes/features/other/customStages/shadows.js +1 -2
- package/dist/classes/features/other/customStages/streakText.js +7 -8
- package/dist/classes/features/other/customStages/utils.d.ts +0 -2
- package/dist/classes/features/other/customStages/utils.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/utils.js +2 -3
- package/dist/classes/features/other/customStages/v.d.ts.map +1 -1
- package/dist/classes/features/other/customStages/versusScreen.js +2 -3
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts +0 -1
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/utils.d.ts +0 -2
- package/dist/classes/features/other/debugDisplay/utils.d.ts.map +1 -1
- package/dist/classes/features/other/debugDisplay/utils.js +2 -3
- package/dist/classes/features/other/extraConsoleCommands/commands.js +155 -158
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +8 -9
- package/dist/classes/features/other/saveDataManager/constants.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts +0 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +4 -5
- package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts +0 -2
- package/dist/classes/features/other/saveDataManager/loadFromDisk.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +5 -2
- package/dist/classes/features/other/saveDataManager/loadFromDisk.lua +3 -0
- package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts +0 -1
- package/dist/classes/features/other/saveDataManager/restoreDefaults.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +3 -4
- package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts +0 -2
- package/dist/classes/features/other/saveDataManager/saveToDisk.d.ts.map +1 -1
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +1 -2
- package/dist/classes/private/CustomCallback.d.ts.map +1 -1
- package/dist/core/cachedClasses.d.ts +0 -5
- package/dist/core/cachedClasses.d.ts.map +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/constantsVanilla.js +4 -4
- package/dist/core/upgradeMod.d.ts +0 -2
- package/dist/core/upgradeMod.d.ts.map +1 -1
- package/dist/core/upgradeMod.js +1 -2
- package/dist/decorators.js +2 -2
- package/dist/enums/ModCallbackCustom.d.ts +134 -117
- package/dist/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/enums/ModCallbackCustom.js +134 -117
- package/dist/enums/ModCallbackCustom.lua +119 -117
- package/dist/enums/private/GridEntityTypeCustom.d.ts.map +1 -1
- package/dist/features.js +1 -2
- package/dist/functions/ambush.js +1 -2
- package/dist/functions/array.d.ts +5 -8
- package/dist/functions/array.d.ts.map +1 -1
- package/dist/functions/array.js +55 -55
- package/dist/functions/array.lua +2 -2
- package/dist/functions/arrayLua.d.ts +1 -1
- package/dist/functions/arrayLua.d.ts.map +1 -1
- package/dist/functions/arrayLua.js +7 -8
- package/dist/functions/benchmark.d.ts +0 -1
- package/dist/functions/benchmark.d.ts.map +1 -1
- package/dist/functions/benchmark.js +1 -2
- package/dist/functions/bitSet128.d.ts +0 -1
- package/dist/functions/bitSet128.d.ts.map +1 -1
- package/dist/functions/bitSet128.js +5 -6
- package/dist/functions/bitwise.d.ts +0 -4
- package/dist/functions/bitwise.d.ts.map +1 -1
- package/dist/functions/bitwise.js +7 -8
- package/dist/functions/bitwise.lua +3 -3
- package/dist/functions/bombs.d.ts +0 -1
- package/dist/functions/bombs.d.ts.map +1 -1
- package/dist/functions/bombs.js +1 -2
- package/dist/functions/bosses.d.ts.map +1 -1
- package/dist/functions/bosses.js +19 -19
- package/dist/functions/cards.js +16 -17
- package/dist/functions/challenges.js +9 -10
- package/dist/functions/characters.js +17 -18
- package/dist/functions/charge.d.ts.map +1 -1
- package/dist/functions/charge.js +12 -13
- package/dist/functions/charge.lua +1 -1
- package/dist/functions/chargeBar.d.ts +0 -2
- package/dist/functions/chargeBar.d.ts.map +1 -1
- package/dist/functions/chargeBar.js +2 -3
- package/dist/functions/collectibleTag.js +2 -3
- package/dist/functions/collectibles.js +39 -40
- package/dist/functions/color.d.ts +0 -1
- package/dist/functions/color.d.ts.map +1 -1
- package/dist/functions/color.js +7 -8
- package/dist/functions/console.js +2 -3
- package/dist/functions/curses.js +2 -3
- package/dist/functions/debugFunctions.d.ts +0 -1
- package/dist/functions/debugFunctions.d.ts.map +1 -1
- package/dist/functions/debugFunctions.js +5 -6
- package/dist/functions/decorators.d.ts +4 -4
- package/dist/functions/decorators.d.ts.map +1 -1
- package/dist/functions/decorators.js +4 -5
- package/dist/functions/deepCopy.d.ts +0 -1
- package/dist/functions/deepCopy.d.ts.map +1 -1
- package/dist/functions/deepCopy.js +7 -10
- package/dist/functions/deepCopy.lua +0 -2
- package/dist/functions/deepCopyTests.js +5 -6
- package/dist/functions/dimensions.js +2 -3
- package/dist/functions/direction.js +6 -7
- package/dist/functions/doors.d.ts.map +1 -1
- package/dist/functions/doors.js +56 -52
- package/dist/functions/easing.js +32 -33
- package/dist/functions/effects.d.ts +0 -2
- package/dist/functions/effects.d.ts.map +1 -1
- package/dist/functions/effects.js +2 -2
- package/dist/functions/emptyRoom.js +7 -8
- package/dist/functions/entities.d.ts +0 -1
- package/dist/functions/entities.d.ts.map +1 -1
- package/dist/functions/entities.js +36 -38
- package/dist/functions/entitiesSpecific.js +40 -41
- package/dist/functions/entityTypes.d.ts +0 -1
- package/dist/functions/entityTypes.d.ts.map +1 -1
- package/dist/functions/entityTypes.js +1 -2
- package/dist/functions/enums.d.ts +1 -6
- package/dist/functions/enums.d.ts.map +1 -1
- package/dist/functions/enums.js +12 -13
- package/dist/functions/external.js +2 -3
- package/dist/functions/familiars.js +8 -9
- package/dist/functions/flag.d.ts +1 -1
- package/dist/functions/flag.d.ts.map +1 -1
- package/dist/functions/flag.js +9 -10
- package/dist/functions/frames.d.ts +0 -1
- package/dist/functions/frames.d.ts.map +1 -1
- package/dist/functions/frames.js +18 -19
- package/dist/functions/globals.d.ts +0 -1
- package/dist/functions/globals.d.ts.map +1 -1
- package/dist/functions/globals.js +23 -15
- package/dist/functions/gridEntities.d.ts.map +1 -1
- package/dist/functions/gridEntities.js +68 -62
- package/dist/functions/gridEntitiesSpecific.js +40 -41
- package/dist/functions/gridIndex.js +1 -2
- package/dist/functions/hash.js +1 -2
- package/dist/functions/hex.d.ts +0 -2
- package/dist/functions/hex.d.ts.map +1 -1
- package/dist/functions/hex.js +2 -3
- package/dist/functions/input.js +21 -21
- package/dist/functions/isaacAPIClass.d.ts +0 -20
- package/dist/functions/isaacAPIClass.d.ts.map +1 -1
- package/dist/functions/isaacAPIClass.js +25 -26
- package/dist/functions/itemPool.js +7 -8
- package/dist/functions/jsonHelpers.d.ts +4 -5
- package/dist/functions/jsonHelpers.d.ts.map +1 -1
- package/dist/functions/jsonHelpers.js +23 -14
- package/dist/functions/jsonHelpers.lua +4 -4
- package/dist/functions/jsonRoom.js +5 -6
- package/dist/functions/kColor.d.ts +0 -1
- package/dist/functions/kColor.d.ts.map +1 -1
- package/dist/functions/kColor.js +7 -8
- package/dist/functions/language.js +1 -2
- package/dist/functions/level.js +7 -8
- package/dist/functions/levelGrid.d.ts.map +1 -1
- package/dist/functions/levelGrid.js +33 -38
- package/dist/functions/log.js +4 -5
- package/dist/functions/logEntities.d.ts.map +1 -1
- package/dist/functions/logEntities.js +19 -17
- package/dist/functions/logMisc.d.ts +1 -2
- package/dist/functions/logMisc.d.ts.map +1 -1
- package/dist/functions/logMisc.js +35 -48
- package/dist/functions/logMisc.lua +3 -3
- package/dist/functions/map.d.ts +0 -2
- package/dist/functions/map.d.ts.map +1 -1
- package/dist/functions/map.js +12 -13
- package/dist/functions/math.js +17 -18
- package/dist/functions/merge.d.ts +0 -1
- package/dist/functions/merge.d.ts.map +1 -1
- package/dist/functions/merge.js +2 -3
- package/dist/functions/mergeTests.js +1 -2
- package/dist/functions/minimap.d.ts.map +1 -1
- package/dist/functions/minimap.js +12 -17
- package/dist/functions/modFeatures.js +1 -2
- package/dist/functions/newArray.d.ts +0 -1
- package/dist/functions/newArray.d.ts.map +1 -1
- package/dist/functions/newArray.js +2 -3
- package/dist/functions/nextStage.d.ts.map +1 -1
- package/dist/functions/nextStage.js +16 -13
- package/dist/functions/npcDataStructures.d.ts +0 -2
- package/dist/functions/npcDataStructures.d.ts.map +1 -1
- package/dist/functions/npcDataStructures.js +14 -15
- package/dist/functions/npcs.d.ts.map +1 -1
- package/dist/functions/npcs.js +19 -17
- package/dist/functions/pickupVariants.d.ts +0 -1
- package/dist/functions/pickupVariants.d.ts.map +1 -1
- package/dist/functions/pickupVariants.js +17 -18
- package/dist/functions/pickups.js +14 -15
- package/dist/functions/pickupsSpecific.js +40 -41
- package/dist/functions/pills.js +18 -19
- package/dist/functions/playerCenter.d.ts +0 -1
- package/dist/functions/playerCenter.d.ts.map +1 -1
- package/dist/functions/playerCenter.js +1 -2
- package/dist/functions/playerCollectibles.d.ts.map +1 -1
- package/dist/functions/playerCollectibles.js +21 -24
- package/dist/functions/playerCollectibles.lua +9 -9
- package/dist/functions/playerDataStructures.d.ts +0 -1
- package/dist/functions/playerDataStructures.d.ts.map +1 -1
- package/dist/functions/playerDataStructures.js +14 -15
- package/dist/functions/playerEffects.js +5 -6
- package/dist/functions/playerHealth.d.ts +0 -2
- package/dist/functions/playerHealth.d.ts.map +1 -1
- package/dist/functions/playerHealth.js +28 -29
- package/dist/functions/playerHealth.lua +26 -26
- package/dist/functions/playerIndex.d.ts +0 -3
- package/dist/functions/playerIndex.d.ts.map +1 -1
- package/dist/functions/playerIndex.js +12 -13
- package/dist/functions/playerTrinkets.js +10 -11
- package/dist/functions/players.js +41 -42
- package/dist/functions/pocketItems.js +10 -11
- package/dist/functions/positionVelocity.d.ts +0 -4
- package/dist/functions/positionVelocity.d.ts.map +1 -1
- package/dist/functions/positionVelocity.js +11 -20
- package/dist/functions/positionVelocity.lua +4 -4
- package/dist/functions/pressurePlate.js +1 -2
- package/dist/functions/projectiles.js +2 -3
- package/dist/functions/random.d.ts +0 -3
- package/dist/functions/random.d.ts.map +1 -1
- package/dist/functions/random.js +3 -4
- package/dist/functions/readOnly.d.ts +0 -4
- package/dist/functions/readOnly.d.ts.map +1 -1
- package/dist/functions/readOnly.js +3 -4
- package/dist/functions/render.d.ts +0 -3
- package/dist/functions/render.d.ts.map +1 -1
- package/dist/functions/render.js +3 -4
- package/dist/functions/revive.d.ts +0 -3
- package/dist/functions/revive.d.ts.map +1 -1
- package/dist/functions/revive.js +20 -21
- package/dist/functions/rng.d.ts +0 -1
- package/dist/functions/rng.d.ts.map +1 -1
- package/dist/functions/rng.js +15 -15
- package/dist/functions/rockAlt.d.ts +0 -1
- package/dist/functions/rockAlt.d.ts.map +1 -1
- package/dist/functions/rockAlt.js +2 -3
- package/dist/functions/roomData.d.ts.map +1 -1
- package/dist/functions/roomData.js +15 -18
- package/dist/functions/roomGrid.js +8 -9
- package/dist/functions/roomShape.js +14 -15
- package/dist/functions/roomShapeWalls.js +2 -3
- package/dist/functions/roomTransition.js +2 -3
- package/dist/functions/rooms.d.ts +1 -2
- package/dist/functions/rooms.d.ts.map +1 -1
- package/dist/functions/rooms.js +116 -105
- package/dist/functions/rooms.lua +3 -4
- package/dist/functions/run.js +8 -9
- package/dist/functions/seeds.d.ts +0 -1
- package/dist/functions/seeds.d.ts.map +1 -1
- package/dist/functions/seeds.js +2 -3
- package/dist/functions/serialization.js +5 -6
- package/dist/functions/set.d.ts +0 -2
- package/dist/functions/set.d.ts.map +1 -1
- package/dist/functions/set.js +22 -23
- package/dist/functions/slots.js +2 -3
- package/dist/functions/sort.d.ts.map +1 -1
- package/dist/functions/sort.js +8 -9
- package/dist/functions/sound.d.ts.map +1 -1
- package/dist/functions/sound.js +4 -9
- package/dist/functions/spawnCollectible.d.ts.map +1 -1
- package/dist/functions/spawnCollectible.js +7 -10
- package/dist/functions/sprites.d.ts +0 -3
- package/dist/functions/sprites.d.ts.map +1 -1
- package/dist/functions/sprites.js +6 -7
- package/dist/functions/stage.d.ts.map +1 -1
- package/dist/functions/stage.js +60 -69
- package/dist/functions/stage.lua +5 -5
- package/dist/functions/stats.js +4 -5
- package/dist/functions/storyBosses.js +2 -3
- package/dist/functions/string.d.ts +0 -1
- package/dist/functions/string.d.ts.map +1 -1
- package/dist/functions/string.js +18 -19
- package/dist/functions/table.d.ts +0 -1
- package/dist/functions/table.d.ts.map +1 -1
- package/dist/functions/table.js +8 -9
- package/dist/functions/tears.js +8 -9
- package/dist/functions/transformations.js +5 -6
- package/dist/functions/trinketGive.js +9 -10
- package/dist/functions/trinkets.d.ts.map +1 -1
- package/dist/functions/trinkets.js +14 -17
- package/dist/functions/tstlClass.d.ts +2 -3
- package/dist/functions/tstlClass.d.ts.map +1 -1
- package/dist/functions/tstlClass.js +9 -10
- package/dist/functions/tstlClass.lua +2 -2
- package/dist/functions/types.d.ts +15 -17
- package/dist/functions/types.d.ts.map +1 -1
- package/dist/functions/types.js +41 -42
- package/dist/functions/types.lua +14 -14
- package/dist/functions/ui.d.ts +0 -3
- package/dist/functions/ui.d.ts.map +1 -1
- package/dist/functions/ui.js +13 -14
- package/dist/functions/utils.d.ts +0 -1
- package/dist/functions/utils.d.ts.map +1 -1
- package/dist/functions/utils.js +11 -12
- package/dist/functions/vector.d.ts +0 -1
- package/dist/functions/vector.d.ts.map +1 -1
- package/dist/functions/vector.js +11 -12
- package/dist/functions/versusScreen.js +4 -5
- package/dist/functions/weighted.d.ts +0 -3
- package/dist/functions/weighted.d.ts.map +1 -1
- package/dist/functions/weighted.js +2 -3
- package/dist/index.d.ts +58 -58
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -58
- package/dist/index.lua +18 -18
- package/dist/index.rollup.d.ts +222 -181
- package/dist/indexLua.d.ts +58 -58
- package/dist/indexLua.d.ts.map +1 -1
- package/dist/indexLua.js +4 -58
- package/dist/indexLua.lua +18 -18
- package/dist/interfaces/ChargeBarSprites.d.ts +0 -2
- package/dist/interfaces/ChargeBarSprites.d.ts.map +1 -1
- package/dist/interfaces/Corner.d.ts +0 -2
- package/dist/interfaces/Corner.d.ts.map +1 -1
- package/dist/interfaces/SaveData.d.ts +0 -1
- package/dist/interfaces/SaveData.d.ts.map +1 -1
- package/dist/interfaces/TSTLClassMetatable.d.ts +0 -4
- package/dist/interfaces/TSTLClassMetatable.d.ts.map +1 -1
- package/dist/interfaces/private/AddCallbackParametersCustom.d.ts +6 -0
- package/dist/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -1
- package/dist/interfaces/private/ModUpgradedInterface.d.ts +0 -1
- package/dist/interfaces/private/ModUpgradedInterface.d.ts.map +1 -1
- package/dist/isaacscript-common.lua +786 -871
- package/dist/lib/jsonLua.js +34 -34
- package/dist/lualib_bundle.lua +49 -38
- package/dist/objects/LRoomShapeToRectangles.js +1 -1
- package/dist/objects/colors.d.ts +0 -1
- package/dist/objects/colors.d.ts.map +1 -1
- package/dist/objects/directionToVector.d.ts +0 -1
- package/dist/objects/directionToVector.d.ts.map +1 -1
- package/dist/objects/doorSlotFlagToDoorSlot.d.ts +9 -2
- package/dist/objects/doorSlotFlagToDoorSlot.d.ts.map +1 -1
- package/dist/objects/doorSlotToDoorSlotFlag.d.ts +0 -1
- package/dist/objects/doorSlotToDoorSlotFlag.d.ts.map +1 -1
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +17 -7
- package/dist/objects/kColors.d.ts +0 -1
- package/dist/objects/kColors.d.ts.map +1 -1
- package/dist/objects/roomShapeToBottomRightPosition.d.ts +0 -1
- package/dist/objects/roomShapeToBottomRightPosition.d.ts.map +1 -1
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +1 -1
- package/dist/objects/roomShapeToTopLeftPosition.d.ts +0 -1
- package/dist/objects/roomShapeToTopLeftPosition.d.ts.map +1 -1
- package/dist/objects/versusScreenBackgroundColors.d.ts +0 -1
- package/dist/objects/versusScreenBackgroundColors.d.ts.map +1 -1
- package/dist/objects/versusScreenDirtSpotColors.d.ts +0 -1
- package/dist/objects/versusScreenDirtSpotColors.d.ts.map +1 -1
- package/dist/patchErrorFunctions.js +1 -2
- package/dist/serialization.js +1 -2
- package/dist/shaderCrashFix.d.ts +0 -1
- package/dist/shaderCrashFix.d.ts.map +1 -1
- package/dist/shaderCrashFix.js +1 -2
- package/dist/shouldFire.d.ts.map +1 -1
- package/dist/shouldFire.js +83 -86
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types/AddSubtract.d.ts +10 -2
- package/dist/types/AddSubtract.d.ts.map +1 -1
- package/dist/types/AnyEntity.d.ts +0 -11
- package/dist/types/AnyEntity.d.ts.map +1 -1
- package/dist/types/AnyGridEntity.d.ts +0 -8
- package/dist/types/AnyGridEntity.d.ts.map +1 -1
- package/dist/types/Increment.d.ts.map +1 -1
- package/dist/types/PickingUpItem.d.ts +10 -3
- package/dist/types/PickingUpItem.d.ts.map +1 -1
- package/dist/types/PickingUpItem.js +15 -9
- package/dist/types/PickingUpItem.lua +8 -3
- package/dist/types/PickupIndex.d.ts +0 -1
- package/dist/types/PickupIndex.d.ts.map +1 -1
- package/dist/types/PlayerIndex.d.ts +0 -1
- package/dist/types/PlayerIndex.d.ts.map +1 -1
- package/dist/types/ReadonlyMap.d.ts.map +1 -1
- package/dist/types/ReadonlySet.d.ts.map +1 -1
- package/dist/types/TSTLClass.d.ts +0 -1
- package/dist/types/TSTLClass.d.ts.map +1 -1
- package/dist/types/TupleWithLengthBetween.js +2 -2
- package/dist/types/TupleWithMaxLength.js +2 -2
- package/dist/types/WeightedArray.d.ts +0 -1
- package/dist/types/WeightedArray.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/callbackClasses.ts +7 -6
- package/src/callbacks.ts +1 -0
- package/src/classes/DefaultMap.ts +5 -2
- package/src/classes/ModFeature.ts +3 -3
- package/src/classes/ModUpgraded.ts +4 -6
- package/src/classes/callbacks/InputActionFilter.ts +3 -3
- package/src/classes/callbacks/InputActionPlayer.ts +6 -6
- package/src/classes/callbacks/PostBoneSwing.ts +2 -2
- package/src/classes/callbacks/PostCollectibleEmpty.ts +3 -5
- package/src/classes/callbacks/PostCursedTeleport.ts +5 -5
- package/src/classes/callbacks/PostDiceRoomActivated.ts +2 -2
- package/src/classes/callbacks/PostEntityRemoveFilter.ts +22 -0
- package/src/classes/callbacks/PostGridEntityCollision.ts +10 -10
- package/src/classes/callbacks/PostGridEntityCustomCollision.ts +8 -8
- package/src/classes/callbacks/PostGridEntityCustomRemove.ts +2 -2
- package/src/classes/callbacks/PostGridEntityRemove.ts +3 -3
- package/src/classes/callbacks/PostItemDischarge.ts +5 -8
- package/src/classes/callbacks/PostKeyboardChanged.ts +2 -2
- package/src/classes/callbacks/PostNPCStateChanged.ts +1 -1
- package/src/classes/callbacks/PostNewRoomEarly.ts +3 -3
- package/src/classes/callbacks/PostPickupSelectionFilter.ts +4 -3
- package/src/classes/callbacks/PostPlayerChangeHealth.ts +2 -2
- package/src/classes/callbacks/PostPlayerChangeType.ts +1 -1
- package/src/classes/callbacks/PostPurchase.ts +9 -9
- package/src/classes/callbacks/PostTransformation.ts +1 -3
- package/src/classes/callbacks/PostTrinketBreak.ts +1 -3
- package/src/classes/callbacks/PostUsePillFilter.ts +2 -2
- package/src/classes/callbacks/PreBerserkDeath.ts +4 -4
- package/src/classes/callbacks/PreEntitySpawnFilter.ts +3 -3
- package/src/classes/callbacks/PreRoomEntitySpawnFilter.ts +5 -5
- package/src/classes/features/callbackLogic/CustomGridEntities.ts +1 -1
- package/src/classes/features/callbackLogic/EsauJrDetection.ts +2 -2
- package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +9 -11
- package/src/classes/features/callbackLogic/GridEntityUpdateDetection.ts +4 -4
- package/src/classes/features/callbackLogic/ItemPickupDetection.ts +4 -4
- package/src/classes/features/callbackLogic/PlayerCollectibleDetection.ts +2 -2
- package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +4 -4
- package/src/classes/features/other/CustomPickups.ts +1 -0
- package/src/classes/features/other/CustomStages.ts +2 -2
- package/src/classes/features/other/CustomTrapdoors.ts +46 -39
- package/src/classes/features/other/DeployJSONRoom.ts +6 -4
- package/src/classes/features/other/DisableInputs.ts +3 -3
- package/src/classes/features/other/EdenStartingStatsHealth.ts +3 -1
- package/src/classes/features/other/ExtraConsoleCommands.ts +14 -10
- package/src/classes/features/other/ModdedElementDetection.ts +4 -4
- package/src/classes/features/other/ModdedElementSets.ts +5 -5
- package/src/classes/features/other/NoSirenSteal.ts +4 -4
- package/src/classes/features/other/PickupIndexCreation.ts +7 -8
- package/src/classes/features/other/PonyDetection.ts +2 -2
- package/src/classes/features/other/PressInput.ts +2 -2
- package/src/classes/features/other/PreventChildEntities.ts +4 -4
- package/src/classes/features/other/RoomHistory.ts +5 -5
- package/src/classes/features/other/RunInNFrames.ts +2 -2
- package/src/classes/features/other/SaveDataManager.ts +3 -3
- package/src/classes/features/other/StageHistory.ts +2 -2
- package/src/classes/features/other/StartAmbush.ts +2 -2
- package/src/classes/features/other/TaintedLazarusPlayers.ts +2 -2
- package/src/classes/features/other/customStages/backdrop.ts +1 -1
- package/src/classes/features/other/customStages/gridEntities.ts +4 -4
- package/src/classes/features/other/customStages/streakText.ts +4 -4
- package/src/classes/features/other/extraConsoleCommands/commands.ts +15 -15
- package/src/classes/features/other/saveDataManager/glowingHourGlass.ts +4 -2
- package/src/classes/features/other/saveDataManager/loadFromDisk.ts +5 -0
- package/src/core/constants.ts +1 -1
- package/src/core/constantsVanilla.ts +4 -4
- package/src/enums/ModCallbackCustom.ts +18 -0
- package/src/functions/array.ts +33 -29
- package/src/functions/arrayLua.ts +1 -1
- package/src/functions/bosses.ts +4 -3
- package/src/functions/charge.ts +3 -4
- package/src/functions/collectibles.ts +2 -2
- package/src/functions/decorators.ts +6 -9
- package/src/functions/deepCopy.ts +6 -10
- package/src/functions/deepCopyTests.ts +4 -4
- package/src/functions/doors.ts +8 -3
- package/src/functions/easing.ts +2 -2
- package/src/functions/emptyRoom.ts +5 -5
- package/src/functions/entities.ts +11 -12
- package/src/functions/enums.ts +4 -4
- package/src/functions/familiars.ts +2 -2
- package/src/functions/flag.ts +3 -3
- package/src/functions/globals.ts +2 -3
- package/src/functions/gridEntities.ts +30 -24
- package/src/functions/gridEntitiesSpecific.ts +2 -2
- package/src/functions/isaacAPIClass.ts +2 -2
- package/src/functions/jsonHelpers.ts +7 -5
- package/src/functions/level.ts +3 -3
- package/src/functions/levelGrid.ts +9 -12
- package/src/functions/logEntities.ts +11 -8
- package/src/functions/logMisc.ts +9 -20
- package/src/functions/map.ts +4 -4
- package/src/functions/math.ts +4 -4
- package/src/functions/merge.ts +1 -1
- package/src/functions/minimap.ts +2 -6
- package/src/functions/newArray.ts +1 -1
- package/src/functions/nextStage.ts +14 -10
- package/src/functions/npcDataStructures.ts +5 -5
- package/src/functions/npcs.ts +13 -10
- package/src/functions/pickupVariants.ts +6 -6
- package/src/functions/playerCollectibles.ts +3 -5
- package/src/functions/playerDataStructures.ts +5 -5
- package/src/functions/playerHealth.ts +8 -8
- package/src/functions/playerIndex.ts +3 -3
- package/src/functions/players.ts +4 -4
- package/src/functions/pocketItems.ts +2 -2
- package/src/functions/positionVelocity.ts +4 -12
- package/src/functions/revive.ts +15 -15
- package/src/functions/rng.ts +4 -3
- package/src/functions/roomData.ts +1 -3
- package/src/functions/roomGrid.ts +2 -2
- package/src/functions/rooms.ts +55 -42
- package/src/functions/set.ts +8 -8
- package/src/functions/sort.ts +4 -4
- package/src/functions/sound.ts +2 -7
- package/src/functions/spawnCollectible.ts +4 -6
- package/src/functions/stage.ts +20 -30
- package/src/functions/string.ts +6 -6
- package/src/functions/tears.ts +2 -2
- package/src/functions/trinketGive.ts +4 -4
- package/src/functions/trinkets.ts +1 -3
- package/src/functions/tstlClass.ts +2 -2
- package/src/functions/types.ts +19 -19
- package/src/index.ts +58 -58
- package/src/interfaces/SaveData.ts +2 -1
- package/src/interfaces/private/AddCallbackParametersCustom.ts +7 -0
- package/src/lib/jsonLua.js +34 -34
- package/src/objects/LRoomShapeToRectangles.ts +1 -1
- package/src/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +1 -1
- package/src/shouldFire.ts +55 -57
- package/src/types/AddSubtract.ts +10 -2
- package/src/types/HasFunction.ts +1 -1
- package/src/types/Immutable.ts +1 -1
- package/src/types/Increment.ts +2 -2
- package/src/types/PickingUpItem.ts +10 -3
- package/src/types/TupleWithLengthBetween.ts +2 -2
- package/src/types/TupleWithMaxLength.ts +2 -2
|
@@ -104,7 +104,7 @@ export class SaveDataManager extends Feature {
|
|
|
104
104
|
|
|
105
105
|
// 18
|
|
106
106
|
// We want to avoid a needless dependency on the `GameReorderedCallbacks` feature.
|
|
107
|
-
// eslint-disable-next-line
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
108
108
|
[ModCallback.POST_NEW_LEVEL, this.postNewLevel],
|
|
109
109
|
];
|
|
110
110
|
|
|
@@ -393,8 +393,8 @@ export class SaveDataManager extends Feature {
|
|
|
393
393
|
private storeClassConstructorsFromObject(luaMap: LuaMap<AnyNotNil, unknown>) {
|
|
394
394
|
const tstlClassName = getTSTLClassName(luaMap);
|
|
395
395
|
if (
|
|
396
|
-
tstlClassName !== undefined
|
|
397
|
-
!NON_USER_DEFINED_CLASS_NAMES.has(tstlClassName)
|
|
396
|
+
tstlClassName !== undefined
|
|
397
|
+
&& !NON_USER_DEFINED_CLASS_NAMES.has(tstlClassName)
|
|
398
398
|
) {
|
|
399
399
|
this.classConstructors.set(tstlClassName, luaMap as unknown as AnyClass);
|
|
400
400
|
}
|
|
@@ -323,8 +323,8 @@ export class StageHistory extends Feature {
|
|
|
323
323
|
|
|
324
324
|
return v.run.stageHistory.some(
|
|
325
325
|
(stageHistoryEntry) =>
|
|
326
|
-
stageHistoryEntry.stage === stage
|
|
327
|
-
stageHistoryEntry.stageType === stageType,
|
|
326
|
+
stageHistoryEntry.stage === stage
|
|
327
|
+
&& stageHistoryEntry.stageType === stageType,
|
|
328
328
|
);
|
|
329
329
|
}
|
|
330
330
|
}
|
|
@@ -60,8 +60,8 @@ export class StartAmbush extends Feature {
|
|
|
60
60
|
const coins = getCoins();
|
|
61
61
|
const coinsFromSack = coins.filter(
|
|
62
62
|
(pickup) =>
|
|
63
|
-
pickup.SpawnerEntity !== undefined
|
|
64
|
-
GetPtrHash(pickup.SpawnerEntity) === sackPtrHash,
|
|
63
|
+
pickup.SpawnerEntity !== undefined
|
|
64
|
+
&& GetPtrHash(pickup.SpawnerEntity) === sackPtrHash,
|
|
65
65
|
);
|
|
66
66
|
removeEntities(coinsFromSack);
|
|
67
67
|
});
|
|
@@ -70,8 +70,8 @@ export class TaintedLazarusPlayers extends Feature {
|
|
|
70
70
|
*/
|
|
71
71
|
private checkDequeue() {
|
|
72
72
|
if (
|
|
73
|
-
v.run.queuedTaintedLazarus.length === 0
|
|
74
|
-
v.run.queuedDeadTaintedLazarus.length === 0
|
|
73
|
+
v.run.queuedTaintedLazarus.length === 0
|
|
74
|
+
|| v.run.queuedDeadTaintedLazarus.length === 0
|
|
75
75
|
) {
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
@@ -57,7 +57,7 @@ const ROOM_SHAPE_WALL_ANM2_LAYERS = {
|
|
|
57
57
|
} as const satisfies Record<RoomShape, int>;
|
|
58
58
|
|
|
59
59
|
// We don't use `as const` since we need the object to be indexable by all `RoomShape`.
|
|
60
|
-
// eslint-disable-next-line
|
|
60
|
+
// eslint-disable-next-line complete/require-capital-const-assertions
|
|
61
61
|
const ROOM_SHAPE_WALL_EXTRA_ANM2_LAYERS: Readonly<
|
|
62
62
|
Partial<Record<RoomShape, int>>
|
|
63
63
|
> = {
|
|
@@ -14,8 +14,8 @@ export function setCustomDecorationGraphics(
|
|
|
14
14
|
// If the end-user did not specify custom decoration graphics, default to Basement graphics. (We
|
|
15
15
|
// don't have to adjust anything for this case.)
|
|
16
16
|
if (
|
|
17
|
-
customStage.decorationsPNGPath === undefined
|
|
18
|
-
customStage.decorationsANM2Path === undefined
|
|
17
|
+
customStage.decorationsPNGPath === undefined
|
|
18
|
+
&& customStage.decorationsANM2Path === undefined
|
|
19
19
|
) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
@@ -56,8 +56,8 @@ export function setCustomRockGraphics(
|
|
|
56
56
|
// If the end-user did not specify custom rock graphics, default to Basement graphics. (We don't
|
|
57
57
|
// have to adjust anything for this case.)
|
|
58
58
|
if (
|
|
59
|
-
customStage.rocksPNGPath === undefined
|
|
60
|
-
customStage.rocksANM2Path === undefined
|
|
59
|
+
customStage.rocksPNGPath === undefined
|
|
60
|
+
&& customStage.rocksANM2Path === undefined
|
|
61
61
|
) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
@@ -100,8 +100,8 @@ export function streakTextPostRender(): void {
|
|
|
100
100
|
|
|
101
101
|
function checkEndTopStreakText() {
|
|
102
102
|
if (
|
|
103
|
-
v.run.topStreakTextStartedRenderFrame === null
|
|
104
|
-
v.run.topStreakText.animation !== UIStreakAnimation.TEXT_STAY
|
|
103
|
+
v.run.topStreakTextStartedRenderFrame === null
|
|
104
|
+
|| v.run.topStreakText.animation !== UIStreakAnimation.TEXT_STAY
|
|
105
105
|
) {
|
|
106
106
|
return;
|
|
107
107
|
}
|
|
@@ -229,8 +229,8 @@ function renderStreakText(
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
if (
|
|
232
|
-
streakText.animation === UIStreakAnimation.TEXT
|
|
233
|
-
streakText.frame === TEXT_STAY_FRAME
|
|
232
|
+
streakText.animation === UIStreakAnimation.TEXT
|
|
233
|
+
&& streakText.frame === TEXT_STAY_FRAME
|
|
234
234
|
) {
|
|
235
235
|
streakText.animation = UIStreakAnimation.TEXT_STAY;
|
|
236
236
|
streakText.frame = 0;
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
/*
|
|
4
4
|
eslint "sort-exports/sort-exports": [
|
|
5
|
-
"
|
|
5
|
+
"warn",
|
|
6
6
|
{
|
|
7
7
|
sortDir: "asc",
|
|
8
8
|
},
|
|
9
9
|
],
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
/* eslint "jsdoc/require-jsdoc": "
|
|
12
|
+
/* eslint "jsdoc/require-jsdoc": "warn" */
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* __DOCS_LINE_THAT_WILL_BE_AUTOMATICALLY_REMOVED__
|
|
16
16
|
*
|
|
17
17
|
* This is a list of custom console commands that are included with the standard library. By
|
|
18
18
|
* default, they will not be enabled. You can enable them by upgrading your mod with
|
|
19
|
-
* `ISCFeature.EXTRA_CONSOLE_COMMANDS`. (Also see the [Extra Console
|
|
20
|
-
* feature documentation.)
|
|
19
|
+
* `ISCFeature.EXTRA_CONSOLE_COMMANDS`. (Also see the [Extra Console
|
|
20
|
+
* Commands](/isaacscript-common/features/ExtraConsoleCommands) feature documentation.)
|
|
21
21
|
*
|
|
22
22
|
* As a quality of life feature, you do not have to match the casing of the command. For example,
|
|
23
23
|
* you can type the "addCharges" command as "addcharges", and it will still work the same.
|
|
@@ -414,7 +414,7 @@ export function cards(): void {
|
|
|
414
414
|
|
|
415
415
|
const worldPosition = gridCoordinatesToWorldPosition(x, y);
|
|
416
416
|
spawnCard(cardType, worldPosition);
|
|
417
|
-
cardType++; // eslint-disable-line
|
|
417
|
+
cardType++; // eslint-disable-line complete/strict-enums
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
}
|
|
@@ -1115,7 +1115,7 @@ export function pills(): void {
|
|
|
1115
1115
|
|
|
1116
1116
|
const worldPosition = gridCoordinatesToWorldPosition(x, y);
|
|
1117
1117
|
spawnPill(pillColor, worldPosition);
|
|
1118
|
-
pillColor++; // eslint-disable-line
|
|
1118
|
+
pillColor++; // eslint-disable-line complete/strict-enums
|
|
1119
1119
|
}
|
|
1120
1120
|
|
|
1121
1121
|
y = 2;
|
|
@@ -1127,7 +1127,7 @@ export function pills(): void {
|
|
|
1127
1127
|
|
|
1128
1128
|
const worldPosition = gridCoordinatesToWorldPosition(x, y);
|
|
1129
1129
|
spawnPill(pillColor, worldPosition);
|
|
1130
|
-
pillColor++; // eslint-disable-line
|
|
1130
|
+
pillColor++; // eslint-disable-line complete/strict-enums
|
|
1131
1131
|
}
|
|
1132
1132
|
|
|
1133
1133
|
y = 3;
|
|
@@ -1156,8 +1156,8 @@ export function pocket(params: string): void {
|
|
|
1156
1156
|
|
|
1157
1157
|
const collectibleType = parseIntSafe(params);
|
|
1158
1158
|
if (
|
|
1159
|
-
collectibleType === undefined
|
|
1160
|
-
!isValidCollectibleType(collectibleType)
|
|
1159
|
+
collectibleType === undefined
|
|
1160
|
+
|| !isValidCollectibleType(collectibleType)
|
|
1161
1161
|
) {
|
|
1162
1162
|
print(`Invalid collectible type: ${collectibleType}`);
|
|
1163
1163
|
return;
|
|
@@ -1259,10 +1259,10 @@ export function s(params: string): void {
|
|
|
1259
1259
|
let stageString: string;
|
|
1260
1260
|
let stageTypeLetter: string;
|
|
1261
1261
|
if (
|
|
1262
|
-
finalCharacter === "a"
|
|
1263
|
-
finalCharacter === "b"
|
|
1264
|
-
finalCharacter === "c"
|
|
1265
|
-
finalCharacter === "d"
|
|
1262
|
+
finalCharacter === "a"
|
|
1263
|
+
|| finalCharacter === "b"
|
|
1264
|
+
|| finalCharacter === "c"
|
|
1265
|
+
|| finalCharacter === "d"
|
|
1266
1266
|
) {
|
|
1267
1267
|
// e.g. "s 11a" for going to The Chest
|
|
1268
1268
|
stageString = params.slice(0, -1);
|
|
@@ -1553,8 +1553,8 @@ export function spawnCollectibleAt(params: string): void {
|
|
|
1553
1553
|
|
|
1554
1554
|
const collectibleType = parseIntSafe(collectibleTypeString);
|
|
1555
1555
|
if (
|
|
1556
|
-
collectibleType === undefined
|
|
1557
|
-
!isValidCollectibleType(collectibleType)
|
|
1556
|
+
collectibleType === undefined
|
|
1557
|
+
|| !isValidCollectibleType(collectibleType)
|
|
1558
1558
|
) {
|
|
1559
1559
|
print(`Invalid collectible type: ${args[0]}`);
|
|
1560
1560
|
return;
|
|
@@ -140,8 +140,10 @@ export function restoreGlowingHourGlassBackup(
|
|
|
140
140
|
|
|
141
141
|
function getKeysToBackup(saveData: SaveData) {
|
|
142
142
|
const shouldBackupPersistentObject =
|
|
143
|
-
saveData.persistent !== undefined
|
|
144
|
-
(saveData.persistent as LuaTable).has(
|
|
143
|
+
saveData.persistent !== undefined
|
|
144
|
+
&& (saveData.persistent as LuaTable).has(
|
|
145
|
+
REWIND_WITH_GLOWING_HOUR_GLASS_KEY,
|
|
146
|
+
);
|
|
145
147
|
|
|
146
148
|
return shouldBackupPersistentObject
|
|
147
149
|
? ([...GLOWING_HOUR_GLASS_BACKUP_KEYS, SaveDataKey.PERSISTENT] as const)
|
|
@@ -23,6 +23,11 @@ export function loadFromDisk(
|
|
|
23
23
|
const jsonString = readSaveDatFile(mod);
|
|
24
24
|
const newSaveData = jsonDecode(jsonString);
|
|
25
25
|
|
|
26
|
+
if (newSaveData === undefined) {
|
|
27
|
+
// Reading the save data failed.
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
26
31
|
if (SAVE_DATA_MANAGER_DEBUG) {
|
|
27
32
|
log('Converted data from the "save#.dat" to a Lua table.');
|
|
28
33
|
}
|
package/src/core/constants.ts
CHANGED
|
@@ -295,7 +295,7 @@ export const ONE_BY_ONE_ROOM_GRID_SIZE = 135;
|
|
|
295
295
|
* An array representing every valid collectible type quality. Specifically, this is: `[0, 1, 2, 3,
|
|
296
296
|
* 4]`
|
|
297
297
|
*/
|
|
298
|
-
// eslint-disable-next-line
|
|
298
|
+
// eslint-disable-next-line complete/require-capital-const-assertions
|
|
299
299
|
export const QUALITIES: readonly Quality[] = [0, 1, 2, 3, 4];
|
|
300
300
|
export const MAX_QUALITY: Quality = 4;
|
|
301
301
|
|
|
@@ -53,7 +53,7 @@ export const VANILLA_COLLECTIBLE_TYPE_RANGE: readonly int[] = iRange(
|
|
|
53
53
|
*
|
|
54
54
|
* If you need to do O(1) lookups, use the `VANILLA_COLLECTIBLE_TYPES_SET` constant instead.
|
|
55
55
|
*/
|
|
56
|
-
// eslint-disable-next-line
|
|
56
|
+
// eslint-disable-next-line complete/strict-enums
|
|
57
57
|
export const VANILLA_COLLECTIBLE_TYPES: readonly CollectibleType[] =
|
|
58
58
|
VANILLA_COLLECTIBLE_TYPE_RANGE.filter((potentialCollectibleType) => {
|
|
59
59
|
const collectibleType = asCollectibleType(potentialCollectibleType);
|
|
@@ -93,7 +93,7 @@ export const VANILLA_TRINKET_TYPE_RANGE: readonly int[] = iRange(
|
|
|
93
93
|
*
|
|
94
94
|
* If you need to do O(1) lookups, use the `VANILLA_TRINKET_TYPES_SET` constant instead.
|
|
95
95
|
*/
|
|
96
|
-
// eslint-disable-next-line
|
|
96
|
+
// eslint-disable-next-line complete/strict-enums
|
|
97
97
|
export const VANILLA_TRINKET_TYPES: readonly TrinketType[] =
|
|
98
98
|
VANILLA_TRINKET_TYPE_RANGE.filter((potentialTrinketType) => {
|
|
99
99
|
const trinketType = asTrinketType(potentialTrinketType);
|
|
@@ -130,7 +130,7 @@ export const VANILLA_CARD_TYPE_RANGE: readonly int[] = iRange(
|
|
|
130
130
|
*
|
|
131
131
|
* If you need to do O(1) lookups, use the `VANILLA_CARD_TYPES_SET` constant instead.
|
|
132
132
|
*/
|
|
133
|
-
// eslint-disable-next-line
|
|
133
|
+
// eslint-disable-next-line complete/strict-enums
|
|
134
134
|
export const VANILLA_CARD_TYPES: readonly CardType[] =
|
|
135
135
|
VANILLA_CARD_TYPE_RANGE.filter((potentialCardType) => {
|
|
136
136
|
const cardType = asCardType(potentialCardType);
|
|
@@ -167,7 +167,7 @@ export const VANILLA_PILL_EFFECT_RANGE: readonly int[] = iRange(
|
|
|
167
167
|
*
|
|
168
168
|
* If you need to do O(1) lookups, use the `VANILLA_PILL_EFFECT_SET` constant instead.
|
|
169
169
|
*/
|
|
170
|
-
// eslint-disable-next-line
|
|
170
|
+
// eslint-disable-next-line complete/strict-enums
|
|
171
171
|
export const VANILLA_PILL_EFFECTS: readonly PillEffect[] =
|
|
172
172
|
VANILLA_PILL_EFFECT_RANGE.filter((potentialPillEffect) => {
|
|
173
173
|
const pillEffect = asPillEffect(potentialPillEffect);
|
|
@@ -415,6 +415,24 @@ export enum ModCallbackCustom {
|
|
|
415
415
|
*/
|
|
416
416
|
POST_ENTITY_KILL_FILTER,
|
|
417
417
|
|
|
418
|
+
/**
|
|
419
|
+
* The exact same thing as the vanilla `POST_ENTITY_REMOVE` callback, except this callback allows
|
|
420
|
+
* you to specify extra arguments for additional filtration.
|
|
421
|
+
*
|
|
422
|
+
* When registering the callback with the `ModUpgraded.AddCallbackCustom` method:
|
|
423
|
+
* - You can provide an optional third argument that will make the callback only fire if it
|
|
424
|
+
* matches the `EntityType` provided.
|
|
425
|
+
* - You can provide an optional fourth argument that will make the callback only fire if it
|
|
426
|
+
* matches the variant provided.
|
|
427
|
+
* - You can provide an optional fifth argument that will make the callback only fire if it
|
|
428
|
+
* matches the sub-type provided.
|
|
429
|
+
*
|
|
430
|
+
* ```ts
|
|
431
|
+
* function postEntityRemoveFilter(entity: Entity): void {}
|
|
432
|
+
* ```
|
|
433
|
+
*/
|
|
434
|
+
POST_ENTITY_REMOVE_FILTER,
|
|
435
|
+
|
|
418
436
|
/**
|
|
419
437
|
* Fires one `POST_UPDATE` frame after the player has used the Esau Jr. item. (The player is not
|
|
420
438
|
* updated to the new character until a game frame has passed.)
|
package/src/functions/array.ts
CHANGED
|
@@ -35,7 +35,7 @@ export function arrayEquals<T>(
|
|
|
35
35
|
* matching element. If you want to remove all of the elements, use the `arrayRemoveAll` function
|
|
36
36
|
* instead.
|
|
37
37
|
*/
|
|
38
|
-
// eslint-disable-next-line
|
|
38
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
39
39
|
export function arrayRemove<T>(
|
|
40
40
|
originalArray: readonly T[],
|
|
41
41
|
...elementsToRemove: readonly T[]
|
|
@@ -63,7 +63,7 @@ export function arrayRemove<T>(
|
|
|
63
63
|
* element. If you want to only remove the first matching element, use the `arrayRemove` function
|
|
64
64
|
* instead.
|
|
65
65
|
*/
|
|
66
|
-
// eslint-disable-next-line
|
|
66
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
67
67
|
export function arrayRemoveAll<T>(
|
|
68
68
|
originalArray: readonly T[],
|
|
69
69
|
...elementsToRemove: readonly T[]
|
|
@@ -86,11 +86,12 @@ export function arrayRemoveAll<T>(
|
|
|
86
86
|
* @returns True if one or more elements were removed, false otherwise.
|
|
87
87
|
*/
|
|
88
88
|
export function arrayRemoveAllInPlace<T>(
|
|
89
|
-
// eslint-disable-next-line
|
|
89
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
90
90
|
array: T[],
|
|
91
91
|
...elementsToRemove: readonly T[]
|
|
92
92
|
): boolean {
|
|
93
93
|
let removedOneOrMoreElements = false;
|
|
94
|
+
|
|
94
95
|
for (const element of elementsToRemove) {
|
|
95
96
|
let index: number;
|
|
96
97
|
do {
|
|
@@ -117,9 +118,9 @@ export function arrayRemoveAllInPlace<T>(
|
|
|
117
118
|
*
|
|
118
119
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
119
120
|
*/
|
|
120
|
-
// eslint-disable-next-line
|
|
121
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
121
122
|
export function arrayRemoveInPlace<T>(
|
|
122
|
-
// eslint-disable-next-line
|
|
123
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
123
124
|
array: T[],
|
|
124
125
|
...elementsToRemove: readonly T[]
|
|
125
126
|
): T[] {
|
|
@@ -127,7 +128,7 @@ export function arrayRemoveInPlace<T>(
|
|
|
127
128
|
|
|
128
129
|
for (const element of elementsToRemove) {
|
|
129
130
|
const index = array.indexOf(element);
|
|
130
|
-
if (index
|
|
131
|
+
if (index !== -1) {
|
|
131
132
|
const removedElement = array.splice(index, 1);
|
|
132
133
|
removedElements.push(...removedElement);
|
|
133
134
|
}
|
|
@@ -143,7 +144,7 @@ export function arrayRemoveInPlace<T>(
|
|
|
143
144
|
*
|
|
144
145
|
* This function is variadic, meaning that you can specify N arguments to remove N elements.
|
|
145
146
|
*/
|
|
146
|
-
// eslint-disable-next-line
|
|
147
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
147
148
|
export function arrayRemoveIndex<T>(
|
|
148
149
|
originalArray: readonly T[],
|
|
149
150
|
...indexesToRemove: readonly int[]
|
|
@@ -168,9 +169,9 @@ export function arrayRemoveIndex<T>(
|
|
|
168
169
|
*
|
|
169
170
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
170
171
|
*/
|
|
171
|
-
// eslint-disable-next-line
|
|
172
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
172
173
|
export function arrayRemoveIndexInPlace<T>(
|
|
173
|
-
// eslint-disable-next-line
|
|
174
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
174
175
|
array: T[],
|
|
175
176
|
...indexesToRemove: readonly int[]
|
|
176
177
|
): T[] {
|
|
@@ -212,7 +213,7 @@ export function arrayToString(array: readonly unknown[]): string {
|
|
|
212
213
|
* This function is variadic, meaning that you can specify N arguments to combine N arrays. Note
|
|
213
214
|
* that this will only perform a shallow copy of the array elements.
|
|
214
215
|
*/
|
|
215
|
-
// eslint-disable-next-line
|
|
216
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
216
217
|
export function combineArrays<T>(...arrays: ReadonlyArray<readonly T[]>): T[] {
|
|
217
218
|
const elements: T[] = [];
|
|
218
219
|
for (const array of arrays) {
|
|
@@ -231,7 +232,7 @@ export function combineArrays<T>(...arrays: ReadonlyArray<readonly T[]>): T[] {
|
|
|
231
232
|
* @param numElements Optional. If specified, will only copy the first N elements. By default, the
|
|
232
233
|
* entire array will be copied.
|
|
233
234
|
*/
|
|
234
|
-
// eslint-disable-next-line
|
|
235
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
235
236
|
export function copyArray<T>(oldArray: readonly T[], numElements?: int): T[] {
|
|
236
237
|
// Using the spread operator was benchmarked to be faster than manually creating an array using
|
|
237
238
|
// the below algorithm.
|
|
@@ -249,9 +250,9 @@ export function copyArray<T>(oldArray: readonly T[], numElements?: int): T[] {
|
|
|
249
250
|
}
|
|
250
251
|
|
|
251
252
|
/** Helper function to remove all of the elements in an array in-place. */
|
|
252
|
-
// eslint-disable-next-line
|
|
253
|
-
export function emptyArray
|
|
254
|
-
array.splice(0
|
|
253
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
254
|
+
export function emptyArray(array: unknown[]): void {
|
|
255
|
+
array.splice(0);
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
/**
|
|
@@ -265,7 +266,7 @@ export function emptyArray<T>(array: T[]): void {
|
|
|
265
266
|
* This is named `filterMap` after the Rust function:
|
|
266
267
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
267
268
|
*/
|
|
268
|
-
// eslint-disable-next-line
|
|
269
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
269
270
|
export function filterMap<OldT, NewT>(
|
|
270
271
|
array: readonly OldT[],
|
|
271
272
|
func: (element: OldT) => NewT | undefined,
|
|
@@ -340,6 +341,7 @@ function addCombinations<T>(
|
|
|
340
341
|
n: number,
|
|
341
342
|
src: readonly T[],
|
|
342
343
|
got: readonly T[],
|
|
344
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
343
345
|
all: Array<readonly T[]>,
|
|
344
346
|
) {
|
|
345
347
|
if (n === 0) {
|
|
@@ -385,7 +387,7 @@ export function getArrayDuplicateElements<T extends number | string>(
|
|
|
385
387
|
* due to implementation details of TypeScriptToLua, this results in an array of 1 through N
|
|
386
388
|
* (instead of an array of 0 through N -1).
|
|
387
389
|
*/
|
|
388
|
-
export function getArrayIndexes
|
|
390
|
+
export function getArrayIndexes(array: readonly unknown[]): readonly int[] {
|
|
389
391
|
return eRange(array.length);
|
|
390
392
|
}
|
|
391
393
|
|
|
@@ -482,7 +484,7 @@ export function getRandomArrayElement<T>(
|
|
|
482
484
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
483
485
|
*/
|
|
484
486
|
export function getRandomArrayElementAndRemove<T>(
|
|
485
|
-
// eslint-disable-next-line
|
|
487
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
486
488
|
array: T[],
|
|
487
489
|
seedOrRNG: Seed | RNG | undefined,
|
|
488
490
|
exceptions: readonly T[] = [],
|
|
@@ -509,8 +511,8 @@ export function getRandomArrayElementAndRemove<T>(
|
|
|
509
511
|
* @param exceptions Optional. An array of indexes that will be skipped over when getting the random
|
|
510
512
|
* index. Default is an empty array.
|
|
511
513
|
*/
|
|
512
|
-
export function getRandomArrayIndex
|
|
513
|
-
array: readonly
|
|
514
|
+
export function getRandomArrayIndex(
|
|
515
|
+
array: readonly unknown[],
|
|
514
516
|
seedOrRNG: Seed | RNG | undefined,
|
|
515
517
|
exceptions: readonly int[] = [],
|
|
516
518
|
): int {
|
|
@@ -596,9 +598,7 @@ export function isArray(
|
|
|
596
598
|
export function isArrayContiguous(array: readonly int[]): boolean {
|
|
597
599
|
let lastValue: int | undefined;
|
|
598
600
|
for (const element of array) {
|
|
599
|
-
|
|
600
|
-
lastValue = element - 1;
|
|
601
|
-
}
|
|
601
|
+
lastValue ??= element - 1;
|
|
602
602
|
|
|
603
603
|
if (element !== lastValue - 1) {
|
|
604
604
|
return false;
|
|
@@ -627,7 +627,7 @@ export function isArrayInArray<T>(
|
|
|
627
627
|
}
|
|
628
628
|
|
|
629
629
|
/** Helper function to set every element in an array to a specific value. */
|
|
630
|
-
// eslint-disable-next-line
|
|
630
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
631
631
|
export function setAllArrayElements<T>(array: T[], value: T): void {
|
|
632
632
|
for (let i = 0; i < array.length; i++) {
|
|
633
633
|
array[i] = value;
|
|
@@ -647,7 +647,7 @@ export function setAllArrayElements<T>(array: T[], value: T): void {
|
|
|
647
647
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
648
648
|
* a random seed.
|
|
649
649
|
*/
|
|
650
|
-
// eslint-disable-next-line
|
|
650
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
651
651
|
export function shuffleArray<T>(
|
|
652
652
|
originalArray: readonly T[],
|
|
653
653
|
seedOrRNG: Seed | RNG | undefined,
|
|
@@ -671,9 +671,9 @@ export function shuffleArray<T>(
|
|
|
671
671
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
672
672
|
* a random seed.
|
|
673
673
|
*/
|
|
674
|
-
export function shuffleArrayInPlace
|
|
675
|
-
// eslint-disable-next-line
|
|
676
|
-
array:
|
|
674
|
+
export function shuffleArrayInPlace(
|
|
675
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
676
|
+
array: unknown[],
|
|
677
677
|
seedOrRNG: Seed | RNG | undefined,
|
|
678
678
|
): void {
|
|
679
679
|
let currentIndex = array.length;
|
|
@@ -696,8 +696,12 @@ export function sumArray(array: readonly number[]): number {
|
|
|
696
696
|
/**
|
|
697
697
|
* Helper function to swap two different array elements. (The elements will be swapped in-place.)
|
|
698
698
|
*/
|
|
699
|
-
|
|
700
|
-
|
|
699
|
+
export function swapArrayElements(
|
|
700
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
701
|
+
array: unknown[],
|
|
702
|
+
i: number,
|
|
703
|
+
j: number,
|
|
704
|
+
): void {
|
|
701
705
|
const value1 = array[i]!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
702
706
|
const value2 = array[j]!; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
703
707
|
|
|
@@ -66,7 +66,7 @@ export function forEach<T>(
|
|
|
66
66
|
*
|
|
67
67
|
* Internally, this just calls `Array.join`.
|
|
68
68
|
*/
|
|
69
|
-
export function join
|
|
69
|
+
export function join(array: readonly unknown[], separator: string): string {
|
|
70
70
|
return array.join(separator);
|
|
71
71
|
}
|
|
72
72
|
|
package/src/functions/bosses.ts
CHANGED
|
@@ -109,7 +109,7 @@ export function getBossID(): BossID | undefined {
|
|
|
109
109
|
|
|
110
110
|
const room = game.GetRoom();
|
|
111
111
|
|
|
112
|
-
// eslint-disable-next-line
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
113
113
|
const bossID = room.GetBossID();
|
|
114
114
|
if (bossID === 0) {
|
|
115
115
|
return undefined;
|
|
@@ -117,8 +117,8 @@ export function getBossID(): BossID | undefined {
|
|
|
117
117
|
|
|
118
118
|
// The Ultra Greed room holds both Ultra Greed and Ultra Greedier.
|
|
119
119
|
if (
|
|
120
|
-
bossID === BossID.ULTRA_GREED
|
|
121
|
-
doesEntityExist(EntityType.ULTRA_GREED, UltraGreedVariant.ULTRA_GREEDIER)
|
|
120
|
+
bossID === BossID.ULTRA_GREED
|
|
121
|
+
&& doesEntityExist(EntityType.ULTRA_GREED, UltraGreedVariant.ULTRA_GREEDIER)
|
|
122
122
|
) {
|
|
123
123
|
return BossID.ULTRA_GREEDIER;
|
|
124
124
|
}
|
|
@@ -235,6 +235,7 @@ function getNumBossSegments(
|
|
|
235
235
|
|
|
236
236
|
// 69
|
|
237
237
|
case EntityType.LOKI: {
|
|
238
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
238
239
|
return variant === LokiVariant.LOKII ? 2 : 1;
|
|
239
240
|
}
|
|
240
241
|
|
package/src/functions/charge.ts
CHANGED
|
@@ -45,8 +45,7 @@ export function addCharge(
|
|
|
45
45
|
// add too many charges, it will grant orange "battery" charges, even if the player does not have
|
|
46
46
|
// The Battery.)
|
|
47
47
|
const chargesAwayFromMax = getChargesAwayFromMax(player, activeSlot);
|
|
48
|
-
const chargesToAdd =
|
|
49
|
-
numCharges > chargesAwayFromMax ? chargesAwayFromMax : numCharges;
|
|
48
|
+
const chargesToAdd = Math.min(numCharges, chargesAwayFromMax);
|
|
50
49
|
|
|
51
50
|
// The AAA Battery trinket might grant an additional charge.
|
|
52
51
|
const modifiedChargesToAdd = getChargesToAddWithAAAModifier(
|
|
@@ -319,7 +318,7 @@ function shouldPlayFullRechargeSound(
|
|
|
319
318
|
// If we do have The Battery, play the full recharge sound if we are exactly double charged or
|
|
320
319
|
// exactly single charged.
|
|
321
320
|
return (
|
|
322
|
-
batteryCharge === maxCharges
|
|
323
|
-
(activeCharge === maxCharges && batteryCharge === 0)
|
|
321
|
+
batteryCharge === maxCharges
|
|
322
|
+
|| (activeCharge === maxCharges && batteryCharge === 0)
|
|
324
323
|
);
|
|
325
324
|
}
|
|
@@ -509,8 +509,8 @@ export function isFamiliarCollectible(
|
|
|
509
509
|
*/
|
|
510
510
|
export function isGlitchedCollectible(collectible: EntityPickup): boolean {
|
|
511
511
|
return (
|
|
512
|
-
collectible.Variant === PickupVariant.COLLECTIBLE
|
|
513
|
-
collectible.SubType > GLITCHED_ITEM_THRESHOLD
|
|
512
|
+
collectible.Variant === PickupVariant.COLLECTIBLE
|
|
513
|
+
&& collectible.SubType > GLITCHED_ITEM_THRESHOLD
|
|
514
514
|
);
|
|
515
515
|
}
|
|
516
516
|
|
|
@@ -85,13 +85,13 @@ export function PriorityCallback<T extends ModCallback>(
|
|
|
85
85
|
priority: CallbackPriority | int,
|
|
86
86
|
...optionalArgs: AllButFirst<AddCallbackParameters[T]>
|
|
87
87
|
) {
|
|
88
|
-
return <
|
|
89
|
-
target:
|
|
88
|
+
return <Fn extends AddCallbackParameters[T][0]>(
|
|
89
|
+
target: ModFeature,
|
|
90
90
|
propertyKey: string,
|
|
91
91
|
_descriptor: TypedPropertyDescriptor<Fn>,
|
|
92
92
|
): void => {
|
|
93
93
|
// First, prepare the arguments for the `Mod.AddPriorityCallback` method.
|
|
94
|
-
const methodName = propertyKey as keyof
|
|
94
|
+
const methodName = propertyKey as keyof ModFeature;
|
|
95
95
|
const method = target[methodName] as AddCallbackParameters[T][0];
|
|
96
96
|
const callbackTuple = [modCallback, priority, method, optionalArgs];
|
|
97
97
|
|
|
@@ -133,16 +133,13 @@ export function PriorityCallbackCustom<T extends ModCallbackCustom>(
|
|
|
133
133
|
priority: CallbackPriority | int,
|
|
134
134
|
...optionalArgs: AllButFirst<AddCallbackParametersCustom[T]>
|
|
135
135
|
) {
|
|
136
|
-
return <
|
|
137
|
-
|
|
138
|
-
Fn extends AddCallbackParametersCustom[T][0],
|
|
139
|
-
>(
|
|
140
|
-
target: Class,
|
|
136
|
+
return <Fn extends AddCallbackParametersCustom[T][0]>(
|
|
137
|
+
target: ModFeature,
|
|
141
138
|
propertyKey: string,
|
|
142
139
|
_descriptor: TypedPropertyDescriptor<Fn>,
|
|
143
140
|
): void => {
|
|
144
141
|
// First, prepare the arguments for the `Mod.AddCallbackCustom` method.
|
|
145
|
-
const methodName = propertyKey as keyof
|
|
142
|
+
const methodName = propertyKey as keyof ModFeature;
|
|
146
143
|
const method = target[methodName] as AddCallbackParametersCustom[T][0];
|
|
147
144
|
const callbackTuple = [modCallbackCustom, priority, method, optionalArgs];
|
|
148
145
|
|
|
@@ -212,8 +212,8 @@ function deepCopyTable(
|
|
|
212
212
|
|
|
213
213
|
// Handle the special case of serialized Isaac API classes.
|
|
214
214
|
if (
|
|
215
|
-
isSerializedIsaacAPIClass(luaMap)
|
|
216
|
-
serializationType === SerializationType.DESERIALIZE
|
|
215
|
+
isSerializedIsaacAPIClass(luaMap)
|
|
216
|
+
&& serializationType === SerializationType.DESERIALIZE
|
|
217
217
|
) {
|
|
218
218
|
return deserializeIsaacAPIClass(luaMap);
|
|
219
219
|
}
|
|
@@ -258,8 +258,8 @@ function deepCopyDefaultMap(
|
|
|
258
258
|
// function. If this is the case, then we cannot serialize it (because there is no way to
|
|
259
259
|
// serialize a function).
|
|
260
260
|
if (
|
|
261
|
-
serializationType === SerializationType.SERIALIZE
|
|
262
|
-
!isPrimitive(constructorArg)
|
|
261
|
+
serializationType === SerializationType.SERIALIZE
|
|
262
|
+
&& !isPrimitive(constructorArg)
|
|
263
263
|
) {
|
|
264
264
|
if (insideMap) {
|
|
265
265
|
// The case of a DefaultMap within another map is complicated. Unlike a DefaultMap attached to
|
|
@@ -320,8 +320,6 @@ function deepCopyDefaultMap(
|
|
|
320
320
|
}
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
-
insideMap = false;
|
|
324
|
-
|
|
325
323
|
return newDefaultMap;
|
|
326
324
|
}
|
|
327
325
|
|
|
@@ -421,8 +419,6 @@ function deepCopyMap(
|
|
|
421
419
|
}
|
|
422
420
|
}
|
|
423
421
|
|
|
424
|
-
insideMap = false;
|
|
425
|
-
|
|
426
422
|
return newMap;
|
|
427
423
|
}
|
|
428
424
|
|
|
@@ -648,8 +644,8 @@ function getCopiedEntries(
|
|
|
648
644
|
// During serialization, we brand some Lua tables with a special identifier to signify that it has
|
|
649
645
|
// keys that should be deserialized to numbers.
|
|
650
646
|
const convertStringKeysToNumbers =
|
|
651
|
-
serializationType === SerializationType.DESERIALIZE
|
|
652
|
-
entries.some(
|
|
647
|
+
serializationType === SerializationType.DESERIALIZE
|
|
648
|
+
&& entries.some(
|
|
653
649
|
([key]) => key === asString(SerializationBrand.OBJECT_WITH_NUMBER_KEYS),
|
|
654
650
|
);
|
|
655
651
|
|