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
|
@@ -203,21 +203,21 @@ function copiedObjectHasNoReferencesForArray() {
|
|
|
203
203
|
error("The copied object does not have an equal array.");
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
oldObject.abc[0]
|
|
206
|
+
oldObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
207
207
|
if (arrayEquals(oldObject.abc, newObject.abc)) {
|
|
208
208
|
error(
|
|
209
209
|
"The copied object has an equal array after a modification to the old array.",
|
|
210
210
|
);
|
|
211
211
|
}
|
|
212
|
-
oldObject.abc[0]
|
|
212
|
+
oldObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
213
213
|
|
|
214
|
-
newObject.abc[0]
|
|
214
|
+
newObject.abc[0]!++; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
215
215
|
if (arrayEquals(oldObject.abc, newObject.abc)) {
|
|
216
216
|
error(
|
|
217
217
|
"The copied object has an equal array after a modification to the new array.",
|
|
218
218
|
);
|
|
219
219
|
}
|
|
220
|
-
newObject.abc[0]
|
|
220
|
+
newObject.abc[0]!--; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
function copiedObjectHasChildObject() {
|
package/src/functions/doors.ts
CHANGED
|
@@ -326,9 +326,9 @@ export function getUnusedDoorSlots(): readonly DoorSlot[] {
|
|
|
326
326
|
return DOOR_SLOT_VALUES.filter(
|
|
327
327
|
(doorSlot) =>
|
|
328
328
|
// We need to filter out the -1 value to prevent crashes.
|
|
329
|
-
doorSlot !== DoorSlot.NO_DOOR_SLOT
|
|
330
|
-
room.IsDoorSlotAllowed(doorSlot)
|
|
331
|
-
room.GetDoor(doorSlot) === undefined,
|
|
329
|
+
doorSlot !== DoorSlot.NO_DOOR_SLOT
|
|
330
|
+
&& room.IsDoorSlotAllowed(doorSlot)
|
|
331
|
+
&& room.GetDoor(doorSlot) === undefined,
|
|
332
332
|
);
|
|
333
333
|
}
|
|
334
334
|
|
|
@@ -377,6 +377,7 @@ export function isAngelRoomDoor(door: GridEntityDoor): boolean {
|
|
|
377
377
|
* Room.)
|
|
378
378
|
*/
|
|
379
379
|
export function isBlueWombDoor(door: GridEntityDoor): boolean {
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
380
381
|
return door.TargetRoomIndex === GridRoom.BLUE_WOMB;
|
|
381
382
|
}
|
|
382
383
|
|
|
@@ -385,6 +386,7 @@ export function isBlueWombDoor(door: GridEntityDoor): boolean {
|
|
|
385
386
|
* vanilla, the door will only appear in the Boss Room of the sixth floor.)
|
|
386
387
|
*/
|
|
387
388
|
export function isBossRushDoor(door: GridEntityDoor): boolean {
|
|
389
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
388
390
|
return door.TargetRoomIndex === GridRoom.BOSS_RUSH;
|
|
389
391
|
}
|
|
390
392
|
|
|
@@ -493,6 +495,7 @@ export function isHiddenSecretRoomDoor(door: GridEntityDoor): boolean {
|
|
|
493
495
|
* (In vanilla, the door will only appear in the starting room of The Chest / Dark Room.)
|
|
494
496
|
*/
|
|
495
497
|
export function isMegaSatanDoor(door: GridEntityDoor): boolean {
|
|
498
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
496
499
|
return door.TargetRoomIndex === GridRoom.MEGA_SATAN;
|
|
497
500
|
}
|
|
498
501
|
|
|
@@ -501,6 +504,7 @@ export function isMegaSatanDoor(door: GridEntityDoor): boolean {
|
|
|
501
504
|
* you to the Repentance floor.
|
|
502
505
|
*/
|
|
503
506
|
export function isRepentanceDoor(door: GridEntityDoor): boolean {
|
|
507
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
504
508
|
return door.TargetRoomIndex === GridRoom.SECRET_EXIT;
|
|
505
509
|
}
|
|
506
510
|
|
|
@@ -525,6 +529,7 @@ export function isSecretRoomDoor(door: GridEntityDoor): boolean {
|
|
|
525
529
|
* contains the portal to The Void. (In vanilla, the door will only appear in the Hush Boss Room.)
|
|
526
530
|
*/
|
|
527
531
|
export function isVoidDoor(door: GridEntityDoor): boolean {
|
|
532
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
528
533
|
return door.TargetRoomIndex === GridRoom.VOID;
|
|
529
534
|
}
|
|
530
535
|
|
package/src/functions/easing.ts
CHANGED
|
@@ -158,8 +158,8 @@ export function easeInOutElastic(time: number): number {
|
|
|
158
158
|
? 1
|
|
159
159
|
: time < 0.5
|
|
160
160
|
? -(2 ** (20 * time - 10) * Math.sin((20 * time - 11.125) * c5)) / 2
|
|
161
|
-
: (2 ** (-20 * time + 10) * Math.sin((20 * time - 11.125) * c5)) / 2
|
|
162
|
-
1;
|
|
161
|
+
: (2 ** (-20 * time + 10) * Math.sin((20 * time - 11.125) * c5)) / 2
|
|
162
|
+
+ 1;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
/**
|
|
@@ -44,9 +44,9 @@ function emptyRoomEntities() {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
if (
|
|
47
|
-
entity.HasEntityFlags(EntityFlag.CHARM)
|
|
48
|
-
entity.HasEntityFlags(EntityFlag.FRIENDLY)
|
|
49
|
-
entity.HasEntityFlags(EntityFlag.PERSISTENT)
|
|
47
|
+
entity.HasEntityFlags(EntityFlag.CHARM)
|
|
48
|
+
|| entity.HasEntityFlags(EntityFlag.FRIENDLY)
|
|
49
|
+
|| entity.HasEntityFlags(EntityFlag.PERSISTENT)
|
|
50
50
|
) {
|
|
51
51
|
continue;
|
|
52
52
|
}
|
|
@@ -74,8 +74,8 @@ export function emptyRoomGridEntities(): void {
|
|
|
74
74
|
// We cannot simply check if the grid entity type is equal to a wall because other mods use
|
|
75
75
|
// walls as a base for custom grid entities.
|
|
76
76
|
if (
|
|
77
|
-
gridEntityType === GridEntityType.WALL
|
|
78
|
-
isVanillaWallGridIndex(gridIndex)
|
|
77
|
+
gridEntityType === GridEntityType.WALL
|
|
78
|
+
&& isVanillaWallGridIndex(gridIndex)
|
|
79
79
|
) {
|
|
80
80
|
continue;
|
|
81
81
|
}
|
|
@@ -149,8 +149,8 @@ export function getClosestEntityTo<T extends AnyEntity>(
|
|
|
149
149
|
const distance = referenceEntity.Position.Distance(entity.Position);
|
|
150
150
|
|
|
151
151
|
if (
|
|
152
|
-
distance < closestDistance
|
|
153
|
-
(filterFunc === undefined || filterFunc(entity))
|
|
152
|
+
distance < closestDistance
|
|
153
|
+
&& (filterFunc === undefined || filterFunc(entity))
|
|
154
154
|
) {
|
|
155
155
|
closestEntity = entity;
|
|
156
156
|
closestDistance = distance;
|
|
@@ -425,6 +425,7 @@ export function isActiveEnemy(entity: Entity): boolean {
|
|
|
425
425
|
|
|
426
426
|
// 912
|
|
427
427
|
case EntityType.MOTHER: {
|
|
428
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
428
429
|
if (entity.Variant === MotherVariant.MOTHER_1) {
|
|
429
430
|
const npc = entity.ToNPC();
|
|
430
431
|
if (npc !== undefined && npc.State === NPCState.SPECIAL) {
|
|
@@ -441,7 +442,7 @@ export function isActiveEnemy(entity: Entity): boolean {
|
|
|
441
442
|
}
|
|
442
443
|
}
|
|
443
444
|
|
|
444
|
-
// eslint-disable-next-line
|
|
445
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
445
446
|
return entity.IsActiveEnemy(false);
|
|
446
447
|
}
|
|
447
448
|
|
|
@@ -478,9 +479,9 @@ export function parseEntityID(
|
|
|
478
479
|
const [entityTypeString, variantString, subTypeString] = entityIDArray;
|
|
479
480
|
|
|
480
481
|
if (
|
|
481
|
-
entityTypeString === undefined
|
|
482
|
-
variantString === undefined
|
|
483
|
-
subTypeString === undefined
|
|
482
|
+
entityTypeString === undefined
|
|
483
|
+
|| variantString === undefined
|
|
484
|
+
|| subTypeString === undefined
|
|
484
485
|
) {
|
|
485
486
|
return undefined;
|
|
486
487
|
}
|
|
@@ -490,9 +491,9 @@ export function parseEntityID(
|
|
|
490
491
|
const subType = parseIntSafe(subTypeString);
|
|
491
492
|
|
|
492
493
|
if (
|
|
493
|
-
entityType === undefined
|
|
494
|
-
variant === undefined
|
|
495
|
-
subType === undefined
|
|
494
|
+
entityType === undefined
|
|
495
|
+
|| variant === undefined
|
|
496
|
+
|| subType === undefined
|
|
496
497
|
) {
|
|
497
498
|
return undefined;
|
|
498
499
|
}
|
|
@@ -679,9 +680,7 @@ export function spawn(
|
|
|
679
680
|
? positionOrGridIndex
|
|
680
681
|
: room.GetGridPosition(positionOrGridIndex);
|
|
681
682
|
|
|
682
|
-
|
|
683
|
-
seedOrRNG = newRNG();
|
|
684
|
-
}
|
|
683
|
+
seedOrRNG ??= newRNG();
|
|
685
684
|
|
|
686
685
|
const seed = isRNG(seedOrRNG) ? seedOrRNG.Next() : seedOrRNG;
|
|
687
686
|
return game.Spawn(
|
package/src/functions/enums.ts
CHANGED
|
@@ -230,7 +230,7 @@ export function getRandomEnumValue<T extends TranspiledEnum>(
|
|
|
230
230
|
* `satisfies` operator with the `Record` type instead.
|
|
231
231
|
*/
|
|
232
232
|
export function interfaceSatisfiesEnum<
|
|
233
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
233
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-unnecessary-type-parameters
|
|
234
234
|
T extends Record<Enum, unknown>,
|
|
235
235
|
Enum extends string | number,
|
|
236
236
|
>(): void {} // eslint-disable-line @typescript-eslint/no-empty-function
|
|
@@ -277,9 +277,9 @@ export function validateCustomEnum(
|
|
|
277
277
|
*
|
|
278
278
|
* This is useful to automate checking large enums for typos.
|
|
279
279
|
*/
|
|
280
|
-
export function validateEnumContiguous
|
|
280
|
+
export function validateEnumContiguous(
|
|
281
281
|
transpiledEnumName: string,
|
|
282
|
-
transpiledEnum:
|
|
282
|
+
transpiledEnum: TranspiledEnum,
|
|
283
283
|
): void {
|
|
284
284
|
const values = getEnumValues(transpiledEnum);
|
|
285
285
|
const lastValue = values.at(-1);
|
|
@@ -296,7 +296,7 @@ export function validateEnumContiguous<T extends TranspiledEnum>(
|
|
|
296
296
|
|
|
297
297
|
const valuesSet = new ReadonlySet(values);
|
|
298
298
|
for (const value of iRange(lastValue)) {
|
|
299
|
-
if (!valuesSet.has(value
|
|
299
|
+
if (!valuesSet.has(value)) {
|
|
300
300
|
error(
|
|
301
301
|
`Failed to find a custom enum value of ${value} for: ${transpiledEnumName}`,
|
|
302
302
|
);
|
|
@@ -146,8 +146,8 @@ export function getSirenHelper(familiar: EntityFamiliar): Entity | undefined {
|
|
|
146
146
|
const sirenHelpers = getEntities(EntityType.SIREN_HELPER);
|
|
147
147
|
return sirenHelpers.find(
|
|
148
148
|
(sirenHelper) =>
|
|
149
|
-
sirenHelper.Target !== undefined
|
|
150
|
-
GetPtrHash(sirenHelper.Target) === familiarPtrHash,
|
|
149
|
+
sirenHelper.Target !== undefined
|
|
150
|
+
&& GetPtrHash(sirenHelper.Target) === familiarPtrHash,
|
|
151
151
|
);
|
|
152
152
|
}
|
|
153
153
|
|
package/src/functions/flag.ts
CHANGED
|
@@ -115,7 +115,7 @@ export function hasFlag<T extends BitFlag | BitFlag128>(
|
|
|
115
115
|
* (This is equivalent to checking if the flag is equal to 0, but this is not possible without
|
|
116
116
|
* casting the flag to a number.)
|
|
117
117
|
*/
|
|
118
|
-
export function isEmptyFlag
|
|
118
|
+
export function isEmptyFlag(flag: BitFlag | BitFlag128): boolean {
|
|
119
119
|
return flag === 0;
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -129,9 +129,9 @@ export function isSelfDamage(
|
|
|
129
129
|
): boolean {
|
|
130
130
|
return (
|
|
131
131
|
// Exclude self-damage from e.g. Curse Room door spikes.
|
|
132
|
-
hasFlag(damageFlags, DamageFlag.NO_PENALTIES)
|
|
132
|
+
hasFlag(damageFlags, DamageFlag.NO_PENALTIES)
|
|
133
133
|
// Exclude self-damage from e.g. Razor.
|
|
134
|
-
hasFlag(damageFlags, DamageFlag.RED_HEARTS)
|
|
134
|
+
|| hasFlag(damageFlags, DamageFlag.RED_HEARTS)
|
|
135
135
|
);
|
|
136
136
|
}
|
|
137
137
|
|
package/src/functions/globals.ts
CHANGED
|
@@ -220,8 +220,7 @@ export function getNewGlobals(): ReadonlyArray<[AnyNotNil, unknown]> {
|
|
|
220
220
|
const newGlobals: Array<[AnyNotNil, unknown]> = [];
|
|
221
221
|
for (const [key, value] of pairs(_G)) {
|
|
222
222
|
if (!defaultGlobals.has(key)) {
|
|
223
|
-
|
|
224
|
-
const keyValueTuple: [AnyNotNil, unknown] = [key, value as any];
|
|
223
|
+
const keyValueTuple: [AnyNotNil, unknown] = [key, value];
|
|
225
224
|
newGlobals.push(keyValueTuple);
|
|
226
225
|
}
|
|
227
226
|
}
|
|
@@ -256,7 +255,7 @@ export function setLogFunctionsGlobal(): void {
|
|
|
256
255
|
const globals = _G as Record<string, unknown>;
|
|
257
256
|
|
|
258
257
|
for (const exports of [logExports, logMiscExports, logEntitiesExports]) {
|
|
259
|
-
// eslint-disable-next-line
|
|
258
|
+
// eslint-disable-next-line complete/no-object-any
|
|
260
259
|
for (const [logFuncName, logFunc] of Object.entries(exports)) {
|
|
261
260
|
globals[logFuncName] = logFunc;
|
|
262
261
|
}
|
|
@@ -110,8 +110,8 @@ export function doesGridEntityExist(
|
|
|
110
110
|
const thisGridEntityType = gridEntity.GetType();
|
|
111
111
|
const thisVariant = gridEntity.GetVariant();
|
|
112
112
|
return (
|
|
113
|
-
gridEntityType === thisGridEntityType
|
|
114
|
-
(variant === -1 || variant === thisVariant)
|
|
113
|
+
gridEntityType === thisGridEntityType
|
|
114
|
+
&& (variant === -1 || variant === thisVariant)
|
|
115
115
|
);
|
|
116
116
|
});
|
|
117
117
|
}
|
|
@@ -150,8 +150,8 @@ export function getCollidingEntitiesWithGridEntity(
|
|
|
150
150
|
|
|
151
151
|
return closeEntities.filter(
|
|
152
152
|
(entity) =>
|
|
153
|
-
entity.CollidesWithGrid()
|
|
154
|
-
isCircleIntersectingRectangle(
|
|
153
|
+
entity.CollidesWithGrid()
|
|
154
|
+
&& isCircleIntersectingRectangle(
|
|
155
155
|
entity.Position,
|
|
156
156
|
// We arbitrarily add 0.1 to account for entities that are already pushed back by the time
|
|
157
157
|
// the `POST_UPDATE` callback fires.
|
|
@@ -791,8 +791,8 @@ export function isGridEntityBreakableByExplosion(
|
|
|
791
791
|
const gridEntityTypeVariant = `${gridEntityType}.${variant}`;
|
|
792
792
|
|
|
793
793
|
return (
|
|
794
|
-
BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS.has(gridEntityType)
|
|
795
|
-
BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS.has(
|
|
794
|
+
BREAKABLE_GRID_ENTITY_TYPES_BY_EXPLOSIONS.has(gridEntityType)
|
|
795
|
+
|| BREAKABLE_GRID_ENTITY_TYPES_VARIANTS_BY_EXPLOSIONS.has(
|
|
796
796
|
gridEntityTypeVariant,
|
|
797
797
|
)
|
|
798
798
|
);
|
|
@@ -816,7 +816,7 @@ export function isGridEntityBroken(gridEntity: GridEntity): boolean {
|
|
|
816
816
|
* the `PRE_ROOM_ENTITY_SPAWN` callback for narrowing the type of the first argument.
|
|
817
817
|
*/
|
|
818
818
|
export function isGridEntityXMLType(num: number): num is GridEntityXMLType {
|
|
819
|
-
return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line
|
|
819
|
+
return GRID_ENTITY_XML_TYPES_SET.has(num); // eslint-disable-line complete/strict-enums
|
|
820
820
|
}
|
|
821
821
|
|
|
822
822
|
/**
|
|
@@ -860,9 +860,10 @@ export function isPostBossVoidPortal(gridEntity: GridEntity): boolean {
|
|
|
860
860
|
const saveState = gridEntity.GetSaveState();
|
|
861
861
|
|
|
862
862
|
return (
|
|
863
|
-
saveState.Type === GridEntityType.TRAPDOOR
|
|
864
|
-
|
|
865
|
-
saveState.
|
|
863
|
+
saveState.Type === GridEntityType.TRAPDOOR
|
|
864
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
865
|
+
&& saveState.Variant === TrapdoorVariant.VOID_PORTAL
|
|
866
|
+
&& saveState.VarData === 1
|
|
866
867
|
);
|
|
867
868
|
}
|
|
868
869
|
|
|
@@ -953,8 +954,8 @@ export function removeEntitiesSpawnedFromGridEntity(
|
|
|
953
954
|
): void {
|
|
954
955
|
const entitiesFromGridEntity = entities.filter(
|
|
955
956
|
(entity) =>
|
|
956
|
-
entity.FrameCount === 0
|
|
957
|
-
vectorEquals(entity.Position, gridEntity.Position),
|
|
957
|
+
entity.FrameCount === 0
|
|
958
|
+
&& vectorEquals(entity.Position, gridEntity.Position),
|
|
958
959
|
);
|
|
959
960
|
removeEntities(entitiesFromGridEntity);
|
|
960
961
|
}
|
|
@@ -1042,6 +1043,7 @@ export function removeGridEntity(
|
|
|
1042
1043
|
// corresponding effect.
|
|
1043
1044
|
if (gridEntityType === GridEntityType.STATUE) {
|
|
1044
1045
|
const effectVariant =
|
|
1046
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1045
1047
|
variant === StatueVariant.DEVIL
|
|
1046
1048
|
? EffectVariant.DEVIL
|
|
1047
1049
|
: EffectVariant.ANGEL;
|
|
@@ -1145,18 +1147,22 @@ export function spawnGiantPoop(topLeftGridIndex: int): boolean {
|
|
|
1145
1147
|
);
|
|
1146
1148
|
|
|
1147
1149
|
return (
|
|
1148
|
-
topLeft !== undefined
|
|
1149
|
-
topLeft.GetType() === GridEntityType.POOP
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
topRight
|
|
1153
|
-
topRight.
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
bottomLeft
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1150
|
+
topLeft !== undefined
|
|
1151
|
+
&& topLeft.GetType() === GridEntityType.POOP
|
|
1152
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1153
|
+
&& topLeft.GetVariant() === PoopGridEntityVariant.GIANT_TOP_LEFT
|
|
1154
|
+
&& topRight !== undefined
|
|
1155
|
+
&& topRight.GetType() === GridEntityType.POOP
|
|
1156
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1157
|
+
&& topRight.GetVariant() === PoopGridEntityVariant.GIANT_TOP_RIGHT
|
|
1158
|
+
&& bottomLeft !== undefined
|
|
1159
|
+
&& bottomLeft.GetType() === GridEntityType.POOP
|
|
1160
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1161
|
+
&& bottomLeft.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_LEFT
|
|
1162
|
+
&& bottomRight !== undefined
|
|
1163
|
+
&& bottomRight.GetType() === GridEntityType.POOP
|
|
1164
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
1165
|
+
&& bottomRight.GetVariant() === PoopGridEntityVariant.GIANT_BOTTOM_RIGHT
|
|
1160
1166
|
);
|
|
1161
1167
|
}
|
|
1162
1168
|
|
|
@@ -97,8 +97,8 @@ export function getPressurePlates(
|
|
|
97
97
|
if (pressurePlate !== undefined) {
|
|
98
98
|
const thisPressurePlateVariant = pressurePlate.GetVariant();
|
|
99
99
|
if (
|
|
100
|
-
pressurePlateVariant === -1
|
|
101
|
-
pressurePlateVariant === thisPressurePlateVariant
|
|
100
|
+
pressurePlateVariant === -1
|
|
101
|
+
|| pressurePlateVariant === thisPressurePlateVariant
|
|
102
102
|
) {
|
|
103
103
|
pressurePlates.push(pressurePlate);
|
|
104
104
|
}
|
|
@@ -83,8 +83,8 @@ export function isIsaacAPIClassOfType(
|
|
|
83
83
|
): boolean {
|
|
84
84
|
const isaacAPIClassType = getIsaacAPIClassName(object);
|
|
85
85
|
return (
|
|
86
|
-
isaacAPIClassType === classType
|
|
87
|
-
isaacAPIClassType === `const ${classType}`
|
|
86
|
+
isaacAPIClassType === classType
|
|
87
|
+
|| isaacAPIClassType === `const ${classType}`
|
|
88
88
|
);
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -13,19 +13,21 @@ function tryEncode(this: void, luaTable: unknown) {
|
|
|
13
13
|
* Converts a JSON string to a Lua table.
|
|
14
14
|
*
|
|
15
15
|
* In most cases, this function will be used for reading data from a "save#.dat" file. If decoding
|
|
16
|
-
* fails, it will return
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* fails, it will return undefined instead of throwing an error. (This allows execution to continue
|
|
17
|
+
* in cases where users have no current save data or have manually removed their existing save
|
|
18
|
+
* data.)
|
|
19
19
|
*
|
|
20
20
|
* Under the hood, this uses a custom JSON parser that was measured to be 11.8 times faster than the
|
|
21
21
|
* vanilla JSON parser.
|
|
22
22
|
*/
|
|
23
|
-
export function jsonDecode(
|
|
23
|
+
export function jsonDecode(
|
|
24
|
+
jsonString: string,
|
|
25
|
+
): LuaMap<AnyNotNil, unknown> | undefined {
|
|
24
26
|
const [ok, luaTableOrErrMsg] = pcall(tryDecode, jsonString);
|
|
25
27
|
if (!ok) {
|
|
26
28
|
// Instead of throwing an error, continue execution of the callback.
|
|
27
29
|
logError(`Failed to convert the JSON string to a Lua table: ${jsonString}`);
|
|
28
|
-
return
|
|
30
|
+
return undefined;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
return luaTableOrErrMsg;
|
package/src/functions/level.ts
CHANGED
|
@@ -44,9 +44,9 @@ export function getLevelBossIDs(): readonly BossID[] {
|
|
|
44
44
|
const roomsInsideGrid = getRoomsInsideGrid();
|
|
45
45
|
|
|
46
46
|
return filterMap(roomsInsideGrid, (roomDescriptor) =>
|
|
47
|
-
roomDescriptor.Data !== undefined
|
|
48
|
-
roomDescriptor.Data.Type === RoomType.BOSS
|
|
49
|
-
roomDescriptor.Data.StageID === StageID.SPECIAL_ROOMS
|
|
47
|
+
roomDescriptor.Data !== undefined
|
|
48
|
+
&& roomDescriptor.Data.Type === RoomType.BOSS
|
|
49
|
+
&& roomDescriptor.Data.StageID === StageID.SPECIAL_ROOMS
|
|
50
50
|
? roomDescriptor.Data.Subtype
|
|
51
51
|
: undefined,
|
|
52
52
|
);
|
|
@@ -247,10 +247,10 @@ export function getNewRoomCandidatesForLevel(
|
|
|
247
247
|
// However, we want to filter out special rooms because they are supposed to be dead ends.
|
|
248
248
|
const normalRooms = roomsInsideGrid.filter(
|
|
249
249
|
(room) =>
|
|
250
|
-
room.Data !== undefined
|
|
251
|
-
room.Data.Type === RoomType.DEFAULT
|
|
252
|
-
!isMirrorRoom(room.Data)
|
|
253
|
-
!isMineShaft(room.Data), // Mineshaft rooms do not count as special rooms.
|
|
250
|
+
room.Data !== undefined
|
|
251
|
+
&& room.Data.Type === RoomType.DEFAULT
|
|
252
|
+
&& !isMirrorRoom(room.Data) // Mirror rooms do not count as special rooms.
|
|
253
|
+
&& !isMineShaft(room.Data), // Mineshaft rooms do not count as special rooms.
|
|
254
254
|
);
|
|
255
255
|
|
|
256
256
|
const roomsToLookThrough = ensureDeadEnd ? normalRooms : roomsInsideGrid;
|
|
@@ -325,8 +325,8 @@ export function getRoomDescriptorsForType(
|
|
|
325
325
|
const roomsInsideGrid = getRoomsInsideGrid();
|
|
326
326
|
return roomsInsideGrid.filter(
|
|
327
327
|
(roomDescriptor) =>
|
|
328
|
-
roomDescriptor.Data !== undefined
|
|
329
|
-
roomTypesSet.has(roomDescriptor.Data.Type),
|
|
328
|
+
roomDescriptor.Data !== undefined
|
|
329
|
+
&& roomTypesSet.has(roomDescriptor.Data.Type),
|
|
330
330
|
);
|
|
331
331
|
}
|
|
332
332
|
|
|
@@ -531,9 +531,7 @@ export function isRedKeyRoom(roomGridIndex: int): boolean {
|
|
|
531
531
|
* @param roomGridIndex Optional. Default is the current room index.
|
|
532
532
|
*/
|
|
533
533
|
export function isRoomInsideGrid(roomGridIndex?: int): boolean {
|
|
534
|
-
|
|
535
|
-
roomGridIndex = getRoomGridIndex();
|
|
536
|
-
}
|
|
534
|
+
roomGridIndex ??= getRoomGridIndex();
|
|
537
535
|
|
|
538
536
|
return roomGridIndex >= 0 && roomGridIndex <= MAX_LEVEL_GRID_INDEX;
|
|
539
537
|
}
|
|
@@ -567,9 +565,8 @@ export function newRoom(
|
|
|
567
565
|
): int | undefined {
|
|
568
566
|
const level = game.GetLevel();
|
|
569
567
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
}
|
|
568
|
+
seedOrRNG ??= level.GetDungeonPlacementSeed();
|
|
569
|
+
|
|
573
570
|
const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
|
|
574
571
|
|
|
575
572
|
const newRoomCandidate = getNewRoomCandidate(rng, ensureDeadEnd);
|
|
@@ -56,9 +56,9 @@ export function logAllEntities(
|
|
|
56
56
|
|
|
57
57
|
const effect = entity.ToEffect();
|
|
58
58
|
if (
|
|
59
|
-
!includeBackgroundEffects
|
|
60
|
-
effect !== undefined
|
|
61
|
-
IGNORE_EFFECT_VARIANTS.has(effect.Variant)
|
|
59
|
+
!includeBackgroundEffects
|
|
60
|
+
&& effect !== undefined
|
|
61
|
+
&& IGNORE_EFFECT_VARIANTS.has(effect.Variant)
|
|
62
62
|
) {
|
|
63
63
|
continue;
|
|
64
64
|
}
|
|
@@ -109,16 +109,16 @@ export function logAllGridEntities(
|
|
|
109
109
|
|
|
110
110
|
// If a filter was specified, exclude all entities outside of the filter.
|
|
111
111
|
if (
|
|
112
|
-
gridEntityTypeFilter !== undefined
|
|
113
|
-
gridEntityType !== gridEntityTypeFilter
|
|
112
|
+
gridEntityTypeFilter !== undefined
|
|
113
|
+
&& gridEntityType !== gridEntityTypeFilter
|
|
114
114
|
) {
|
|
115
115
|
continue;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
if (
|
|
119
|
-
!includeWalls
|
|
120
|
-
gridEntityType === GridEntityType.WALL
|
|
121
|
-
gridEntityTypeFilter !== GridEntityType.WALL
|
|
119
|
+
!includeWalls
|
|
120
|
+
&& gridEntityType === GridEntityType.WALL
|
|
121
|
+
&& gridEntityTypeFilter !== GridEntityType.WALL
|
|
122
122
|
) {
|
|
123
123
|
continue;
|
|
124
124
|
}
|
|
@@ -222,8 +222,11 @@ function getEntityLogLine(this: void, entity: Entity, num?: int): string {
|
|
|
222
222
|
msg += ` - Position: (${entity.Position.X}, ${entity.Position.Y})\n`;
|
|
223
223
|
msg += ` - Velocity: (${entity.Velocity.X}, ${entity.Velocity.Y})\n`;
|
|
224
224
|
msg += ` - HP: ${entity.HitPoints} / ${entity.MaxHitPoints}\n`;
|
|
225
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
225
226
|
msg += ` - Parent: ${entity.Parent}\n`;
|
|
227
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
226
228
|
msg += ` - Child: ${entity.Child}\n`;
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
227
230
|
msg += ` - SpawnerEntity: ${entity.SpawnerEntity}\n`;
|
|
228
231
|
msg += ` - SpawnerType / SpawnerVariant: ${entity.SpawnerType}.${entity.SpawnerVariant}\n`;
|
|
229
232
|
msg += ` - FrameCount: ${entity.FrameCount}\n`;
|
package/src/functions/logMisc.ts
CHANGED
|
@@ -51,11 +51,13 @@ import { vectorToString } from "./vector";
|
|
|
51
51
|
* @param array The array to log.
|
|
52
52
|
* @param name Optional. The name of the array, which will be logged before the elements.
|
|
53
53
|
*/
|
|
54
|
-
export function logArray
|
|
54
|
+
export function logArray(
|
|
55
55
|
this: void,
|
|
56
|
-
array: readonly
|
|
56
|
+
array: readonly unknown[],
|
|
57
57
|
name?: string,
|
|
58
58
|
): void {
|
|
59
|
+
name ??= "array";
|
|
60
|
+
|
|
59
61
|
// We do not assume the given array has contiguous values in order to be more permissive about the
|
|
60
62
|
// kinds of arrays that will successfully log without a run-time error.
|
|
61
63
|
if (!isArray(array, false)) {
|
|
@@ -64,9 +66,6 @@ export function logArray<T>(
|
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
const arrayString = arrayToString(array);
|
|
67
|
-
if (name === undefined) {
|
|
68
|
-
name = "array";
|
|
69
|
-
}
|
|
70
69
|
log(`Logging ${name}: ${arrayString}`);
|
|
71
70
|
}
|
|
72
71
|
|
|
@@ -81,9 +80,7 @@ export function logCollectibleTypes(
|
|
|
81
80
|
collectibleTypes: readonly CollectibleType[],
|
|
82
81
|
name?: string,
|
|
83
82
|
): void {
|
|
84
|
-
|
|
85
|
-
name = "collectibles";
|
|
86
|
-
}
|
|
83
|
+
name ??= "collectibles";
|
|
87
84
|
|
|
88
85
|
log(`Logging ${name}:`);
|
|
89
86
|
|
|
@@ -102,9 +99,7 @@ export function logCollectibleTypes(
|
|
|
102
99
|
* @param name Optional. The name of the object, which will be logged before the properties.
|
|
103
100
|
*/
|
|
104
101
|
export function logColor(this: void, color: Color, name?: string): void {
|
|
105
|
-
|
|
106
|
-
name = "color";
|
|
107
|
-
}
|
|
102
|
+
name ??= "color";
|
|
108
103
|
|
|
109
104
|
log(
|
|
110
105
|
`Logging ${name}: R${color.R}, G${color.G}, B${color.B}, A${color.A}, RO${color.RO}, BO${color.BO}, GO${color.GO}`,
|
|
@@ -199,9 +194,7 @@ export function logItemPoolTypes(
|
|
|
199
194
|
itemPoolTypes: readonly ItemPoolType[],
|
|
200
195
|
name?: string,
|
|
201
196
|
): void {
|
|
202
|
-
|
|
203
|
-
name = "item pool types";
|
|
204
|
-
}
|
|
197
|
+
name ??= "item pool types";
|
|
205
198
|
|
|
206
199
|
log(`Logging ${name}:`);
|
|
207
200
|
|
|
@@ -220,9 +213,7 @@ export function logItemPoolTypes(
|
|
|
220
213
|
* @param name Optional. The name of the object, which will be logged before the properties.
|
|
221
214
|
*/
|
|
222
215
|
export function logKColor(this: void, kColor: KColor, name?: string): void {
|
|
223
|
-
|
|
224
|
-
name = "KColor";
|
|
225
|
-
}
|
|
216
|
+
name ??= "KColor";
|
|
226
217
|
|
|
227
218
|
log(
|
|
228
219
|
`Logging ${name}: R${kColor.Red}, G${kColor.Green}, B${kColor.Blue}, A${kColor.Alpha}`,
|
|
@@ -647,9 +638,7 @@ export function logVector(
|
|
|
647
638
|
name?: string,
|
|
648
639
|
round = false,
|
|
649
640
|
): void {
|
|
650
|
-
|
|
651
|
-
name = "vector";
|
|
652
|
-
}
|
|
641
|
+
name ??= "vector";
|
|
653
642
|
|
|
654
643
|
const vectorString = vectorToString(vector, round);
|
|
655
644
|
log(`Logging ${name}: ${vectorString}`);
|
package/src/functions/map.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { DefaultMap } from "../classes/DefaultMap";
|
|
|
2
2
|
import { sumArray } from "./array";
|
|
3
3
|
|
|
4
4
|
/** Helper function to copy a map. (You can also use a Map constructor to accomplish this task.) */
|
|
5
|
-
// eslint-disable-next-line
|
|
5
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
6
6
|
export function copyMap<K, V>(oldMap: ReadonlyMap<K, V>): Map<K, V> {
|
|
7
7
|
const newMap = new Map<K, V>();
|
|
8
8
|
for (const [key, value] of oldMap) {
|
|
@@ -33,7 +33,7 @@ export function defaultMapGetHash<V, A extends unknown[]>(
|
|
|
33
33
|
* `mapSetHash` helper function.
|
|
34
34
|
*/
|
|
35
35
|
export function defaultMapSetHash<V>(
|
|
36
|
-
// eslint-disable-next-line
|
|
36
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
37
37
|
map: Map<PtrHash, V>,
|
|
38
38
|
entity: Entity,
|
|
39
39
|
value: V,
|
|
@@ -79,7 +79,7 @@ export function getReversedMap<K, V>(
|
|
|
79
79
|
* the map uses `PtrHash` as an index.
|
|
80
80
|
*/
|
|
81
81
|
export function mapSetHash<V>(
|
|
82
|
-
// eslint-disable-next-line
|
|
82
|
+
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
83
83
|
map: Map<PtrHash, V>,
|
|
84
84
|
entity: Entity,
|
|
85
85
|
value: V,
|
|
@@ -101,7 +101,7 @@ export function mapSetHash<V>(
|
|
|
101
101
|
*
|
|
102
102
|
* Also see the `objectToReadonlyMap` function.
|
|
103
103
|
*/
|
|
104
|
-
// eslint-disable-next-line
|
|
104
|
+
// eslint-disable-next-line complete/no-mutable-return
|
|
105
105
|
export function objectToMap<K extends string | number | symbol, V>(
|
|
106
106
|
object: Record<K, V>,
|
|
107
107
|
): Map<K, V> {
|
package/src/functions/math.ts
CHANGED
|
@@ -62,10 +62,10 @@ export function inRectangle(
|
|
|
62
62
|
bottomRight: Vector,
|
|
63
63
|
): boolean {
|
|
64
64
|
return (
|
|
65
|
-
position.X >= topLeft.X
|
|
66
|
-
position.X <= bottomRight.X
|
|
67
|
-
position.Y >= topLeft.Y
|
|
68
|
-
position.Y <= bottomRight.Y
|
|
65
|
+
position.X >= topLeft.X
|
|
66
|
+
&& position.X <= bottomRight.X
|
|
67
|
+
&& position.Y >= topLeft.Y
|
|
68
|
+
&& position.Y <= bottomRight.Y
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
|