isaacscript-common 87.9.7 → 87.9.8
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/dist/cachedEnumValues.js +29 -32
- package/dist/callbackClasses.js +142 -289
- package/dist/callbacks.js +147 -183
- package/dist/classes/DefaultMap.js +4 -8
- package/dist/classes/ModFeature.js +21 -25
- package/dist/classes/ModUpgraded.js +43 -47
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
- package/dist/classes/callbacks/InputActionFilter.js +4 -8
- package/dist/classes/callbacks/InputActionPlayer.js +4 -8
- package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
- package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
- package/dist/classes/callbacks/PostBombExploded.js +8 -12
- package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
- package/dist/classes/callbacks/PostBombInitLate.js +6 -10
- package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostBoneSwing.js +7 -11
- package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
- package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
- package/dist/classes/callbacks/PostCustomRevive.js +4 -8
- package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
- package/dist/classes/callbacks/PostDoorRender.js +8 -12
- package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
- package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
- package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
- package/dist/classes/callbacks/PostEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFirstFlip.js +4 -8
- package/dist/classes/callbacks/PostFlip.js +4 -8
- package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
- package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
- package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
- package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
- package/dist/classes/callbacks/PostItemDischarge.js +23 -27
- package/dist/classes/callbacks/PostItemPickup.js +6 -10
- package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
- package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
- package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
- package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
- package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
- package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPickupChanged.js +6 -10
- package/dist/classes/callbacks/PostPickupCollect.js +8 -12
- package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
- package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
- package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
- package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPitRender.js +8 -12
- package/dist/classes/callbacks/PostPitUpdate.js +8 -12
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
- package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
- package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
- package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
- package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPoopRender.js +8 -12
- package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
- package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
- package/dist/classes/callbacks/PostProjectileKill.js +8 -12
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPurchase.js +21 -25
- package/dist/classes/callbacks/PostRockRender.js +8 -12
- package/dist/classes/callbacks/PostRockUpdate.js +8 -12
- package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
- package/dist/classes/callbacks/PostSacrifice.js +12 -16
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
- package/dist/classes/callbacks/PostSlotCollision.js +8 -12
- package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
- package/dist/classes/callbacks/PostSlotInit.js +6 -10
- package/dist/classes/callbacks/PostSlotRender.js +6 -10
- package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
- package/dist/classes/callbacks/PostSpikesRender.js +8 -12
- package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
- package/dist/classes/callbacks/PostTNTRender.js +8 -12
- package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
- package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
- package/dist/classes/callbacks/PostTearInitLate.js +6 -10
- package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
- package/dist/classes/callbacks/PostTearKill.js +8 -12
- package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostTransformation.js +10 -14
- package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
- package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
- package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
- package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreCustomRevive.js +6 -10
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreGetPedestal.js +8 -12
- package/dist/classes/callbacks/PreItemPickup.js +6 -10
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PreNewLevel.js +10 -14
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
- package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
- package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
- package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
- package/dist/classes/features/other/CharacterStats.js +9 -13
- package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
- package/dist/classes/features/other/CustomHotkeys.js +15 -19
- package/dist/classes/features/other/CustomItemPools.js +20 -24
- package/dist/classes/features/other/CustomPickups.js +15 -19
- package/dist/classes/features/other/CustomStages.js +116 -153
- package/dist/classes/features/other/CustomTrapdoors.js +119 -123
- package/dist/classes/features/other/DebugDisplay.js +77 -81
- package/dist/classes/features/other/DeployJSONRoom.js +65 -69
- package/dist/classes/features/other/DisableAllSound.js +14 -18
- package/dist/classes/features/other/DisableInputs.js +24 -28
- package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
- package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
- package/dist/classes/features/other/FadeInRemover.js +9 -13
- package/dist/classes/features/other/FastReset.js +18 -22
- package/dist/classes/features/other/FlyingDetection.js +10 -14
- package/dist/classes/features/other/ForgottenSwitch.js +8 -12
- package/dist/classes/features/other/ItemPoolDetection.js +35 -39
- package/dist/classes/features/other/ModdedElementDetection.js +43 -47
- package/dist/classes/features/other/ModdedElementSets.js +135 -139
- package/dist/classes/features/other/NoSirenSteal.js +7 -11
- package/dist/classes/features/other/Pause.js +48 -52
- package/dist/classes/features/other/PersistentEntities.js +16 -20
- package/dist/classes/features/other/PickupIndexCreation.js +31 -35
- package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
- package/dist/classes/features/other/PonyDetection.js +22 -26
- package/dist/classes/features/other/PressInput.js +10 -14
- package/dist/classes/features/other/PreventChildEntities.js +6 -10
- package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
- package/dist/classes/features/other/RerunDetection.js +11 -15
- package/dist/classes/features/other/RoomClearFrame.js +11 -15
- package/dist/classes/features/other/RoomHistory.js +30 -34
- package/dist/classes/features/other/RunInNFrames.js +24 -28
- package/dist/classes/features/other/RunNextRoom.js +8 -12
- package/dist/classes/features/other/RunNextRun.js +8 -12
- package/dist/classes/features/other/SaveDataManager.js +61 -65
- package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
- package/dist/classes/features/other/StageHistory.js +76 -80
- package/dist/classes/features/other/StartAmbush.js +12 -16
- package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
- package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
- package/dist/classes/features/other/customStages/backdrop.js +68 -71
- package/dist/classes/features/other/customStages/constants.js +7 -10
- package/dist/classes/features/other/customStages/gridEntities.js +23 -30
- package/dist/classes/features/other/customStages/shadows.js +27 -30
- package/dist/classes/features/other/customStages/streakText.js +55 -60
- package/dist/classes/features/other/customStages/utils.js +13 -17
- package/dist/classes/features/other/customStages/v.js +4 -7
- package/dist/classes/features/other/customStages/versusScreen.js +46 -50
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
- package/dist/classes/features/other/debugDisplay/utils.js +6 -10
- package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
- package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
- package/dist/classes/features/other/saveDataManager/constants.js +1 -4
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
- package/dist/classes/private/CustomCallback.js +4 -8
- package/dist/classes/private/Feature.js +1 -5
- package/dist/core/cachedClasses.js +12 -15
- package/dist/core/constants.js +126 -130
- package/dist/core/constantsFirstLast.js +22 -25
- package/dist/core/constantsVanilla.js +25 -28
- package/dist/core/upgradeMod.js +7 -10
- package/dist/decorators.js +6 -10
- package/dist/enums/AmbushType.js +2 -5
- package/dist/enums/CornerType.js +2 -5
- package/dist/enums/HealthType.js +2 -5
- package/dist/enums/ISCFeature.js +2 -5
- package/dist/enums/LadderSubTypeCustom.js +2 -5
- package/dist/enums/ModCallbackCustom.js +2 -5
- package/dist/enums/MysteriousPaperEffect.js +2 -5
- package/dist/enums/PlayerStat.js +2 -5
- package/dist/enums/PocketItemType.js +2 -5
- package/dist/enums/RockAltType.js +2 -5
- package/dist/enums/SaveDataKey.js +2 -5
- package/dist/enums/SerializationType.js +2 -5
- package/dist/enums/SlotDestructionType.js +2 -5
- package/dist/enums/private/GridEntityTypeCustom.js +1 -4
- package/dist/enums/private/SerializationBrand.js +2 -5
- package/dist/enums/private/StageTravelState.js +2 -5
- package/dist/enums/private/TrapdoorAnimation.js +2 -5
- package/dist/enums/private/UIStreakAnimation.js +2 -5
- package/dist/features.js +138 -141
- package/dist/functions/ambush.js +9 -12
- package/dist/functions/array.js +45 -76
- package/dist/functions/arrayLua.js +7 -16
- package/dist/functions/benchmark.js +4 -7
- package/dist/functions/bitSet128.js +19 -26
- package/dist/functions/bitwise.js +14 -23
- package/dist/functions/bombs.js +1 -4
- package/dist/functions/bosses.js +68 -85
- package/dist/functions/cards.js +44 -62
- package/dist/functions/challenges.js +28 -39
- package/dist/functions/characters.js +68 -87
- package/dist/functions/charge.js +41 -52
- package/dist/functions/chargeBar.js +2 -6
- package/dist/functions/collectibleTag.js +9 -13
- package/dist/functions/collectibles.js +133 -172
- package/dist/functions/color.js +29 -38
- package/dist/functions/console.js +4 -8
- package/dist/functions/curses.js +6 -10
- package/dist/functions/debugFunctions.js +7 -14
- package/dist/functions/decorators.js +13 -19
- package/dist/functions/deepCopy.js +96 -99
- package/dist/functions/deepCopyTests.js +56 -59
- package/dist/functions/dimensions.js +10 -14
- package/dist/functions/direction.js +22 -30
- package/dist/functions/doors.js +104 -154
- package/dist/functions/easing.js +30 -62
- package/dist/functions/effects.js +6 -10
- package/dist/functions/emptyRoom.js +30 -34
- package/dist/functions/entities.js +88 -115
- package/dist/functions/entitiesSpecific.js +83 -125
- package/dist/functions/entityTypes.js +3 -6
- package/dist/functions/enums.js +27 -41
- package/dist/functions/external.js +4 -8
- package/dist/functions/familiars.js +17 -25
- package/dist/functions/flag.js +10 -19
- package/dist/functions/frames.js +31 -51
- package/dist/functions/globals.js +26 -66
- package/dist/functions/gridEntities.js +231 -269
- package/dist/functions/gridEntitiesSpecific.js +86 -126
- package/dist/functions/gridIndex.js +8 -11
- package/dist/functions/hash.js +1 -4
- package/dist/functions/hex.js +7 -11
- package/dist/functions/input.js +65 -88
- package/dist/functions/isaacAPIClass.js +28 -53
- package/dist/functions/itemPool.js +39 -48
- package/dist/functions/jsonHelpers.js +5 -42
- package/dist/functions/jsonRoom.js +39 -46
- package/dist/functions/kColor.js +30 -39
- package/dist/functions/language.js +3 -6
- package/dist/functions/level.js +20 -26
- package/dist/functions/levelGrid.js +81 -108
- package/dist/functions/log.js +6 -12
- package/dist/functions/logEntities.js +49 -59
- package/dist/functions/logMisc.js +183 -214
- package/dist/functions/map.js +10 -20
- package/dist/functions/math.js +16 -31
- package/dist/functions/merge.js +48 -51
- package/dist/functions/mergeTests.js +34 -37
- package/dist/functions/minimap.js +34 -46
- package/dist/functions/modFeatures.js +1 -4
- package/dist/functions/newArray.js +5 -8
- package/dist/functions/nextStage.js +63 -67
- package/dist/functions/npcDataStructures.js +9 -20
- package/dist/functions/npcs.js +37 -45
- package/dist/functions/pickupVariants.js +26 -39
- package/dist/functions/pickups.js +43 -59
- package/dist/functions/pickupsSpecific.js +76 -118
- package/dist/functions/pills.js +52 -72
- package/dist/functions/playerCenter.js +13 -16
- package/dist/functions/playerCollectibles.js +59 -79
- package/dist/functions/playerDataStructures.js +18 -29
- package/dist/functions/playerEffects.js +12 -19
- package/dist/functions/playerHealth.js +91 -113
- package/dist/functions/playerIndex.js +22 -33
- package/dist/functions/playerTrinkets.js +31 -43
- package/dist/functions/players.js +87 -126
- package/dist/functions/pocketItems.js +33 -43
- package/dist/functions/positionVelocity.js +23 -32
- package/dist/functions/pressurePlate.js +7 -10
- package/dist/functions/projectiles.js +11 -15
- package/dist/functions/random.js +8 -13
- package/dist/functions/readOnly.js +3 -8
- package/dist/functions/render.js +7 -12
- package/dist/functions/revive.js +38 -45
- package/dist/functions/rng.js +31 -44
- package/dist/functions/rockAlt.js +18 -22
- package/dist/functions/roomData.js +24 -40
- package/dist/functions/roomGrid.js +17 -25
- package/dist/functions/roomShape.js +39 -55
- package/dist/functions/roomShapeWalls.js +67 -71
- package/dist/functions/roomTransition.js +13 -17
- package/dist/functions/rooms.js +181 -244
- package/dist/functions/run.js +29 -39
- package/dist/functions/seeds.js +6 -10
- package/dist/functions/serialization.js +27 -34
- package/dist/functions/set.js +24 -40
- package/dist/functions/slots.js +18 -22
- package/dist/functions/sort.js +9 -15
- package/dist/functions/sound.js +12 -16
- package/dist/functions/spawnCollectible.js +21 -26
- package/dist/functions/sprites.js +16 -24
- package/dist/functions/stage.js +122 -164
- package/dist/functions/stats.js +37 -43
- package/dist/functions/storyBosses.js +36 -40
- package/dist/functions/string.js +19 -33
- package/dist/functions/table.js +21 -31
- package/dist/functions/tears.js +6 -14
- package/dist/functions/transformations.js +35 -42
- package/dist/functions/trinketGive.js +29 -36
- package/dist/functions/trinkets.js +45 -60
- package/dist/functions/tstlClass.js +11 -20
- package/dist/functions/types.js +22 -46
- package/dist/functions/ui.js +25 -40
- package/dist/functions/utils.js +22 -36
- package/dist/functions/vector.js +33 -46
- package/dist/functions/versusScreen.js +12 -18
- package/dist/functions/weighted.js +8 -12
- package/dist/index.js +150 -166
- package/dist/indexLua.js +151 -167
- package/dist/interfaces/ChargeBarSprites.js +1 -2
- package/dist/interfaces/Corner.js +1 -2
- package/dist/interfaces/CustomStageTSConfig.js +1 -2
- package/dist/interfaces/GridEntityCustomData.js +1 -2
- package/dist/interfaces/JSONRoomsFile.js +1 -2
- package/dist/interfaces/PlayerHealth.js +1 -2
- package/dist/interfaces/PlayerStats.js +2 -4
- package/dist/interfaces/PocketItemDescription.js +1 -2
- package/dist/interfaces/RoomDescription.js +1 -2
- package/dist/interfaces/SaveData.js +1 -2
- package/dist/interfaces/StageHistoryEntry.js +1 -2
- package/dist/interfaces/TSTLClassMetatable.js +1 -2
- package/dist/interfaces/TrinketSituation.js +1 -2
- package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
- package/dist/interfaces/private/CustomStage.js +1 -2
- package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
- package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
- package/dist/isaacscript-common.lua +1 -1
- package/dist/maps/PHDPillConversionsMap.js +19 -22
- package/dist/maps/cardNameToTypeMap.js +205 -208
- package/dist/maps/characterNameToTypeMap.js +85 -88
- package/dist/maps/collectibleNameToTypeMap.js +5 -8
- package/dist/maps/defaultPlayerStatMap.js +10 -13
- package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
- package/dist/maps/falsePHDPillConversionsMap.js +33 -36
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
- package/dist/maps/gridEntityXMLMap.js +52 -55
- package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
- package/dist/maps/keyboardToStringMap.js +66 -69
- package/dist/maps/pillNameToEffectMap.js +83 -86
- package/dist/maps/roomNameToTypeMap.js +38 -41
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
- package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
- package/dist/maps/trinketNameToTypeMap.js +5 -8
- package/dist/objects/LRoomShapeToRectangles.js +22 -25
- package/dist/objects/backdropTypeToRockAltType.js +65 -68
- package/dist/objects/batteryNames.js +8 -11
- package/dist/objects/bombNames.js +11 -14
- package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
- package/dist/objects/bossNamePNGFileNames.js +104 -107
- package/dist/objects/bossNames.js +105 -108
- package/dist/objects/bossPortraitPNGFileNames.js +104 -107
- package/dist/objects/cardDescriptions.js +101 -104
- package/dist/objects/cardNames.js +101 -104
- package/dist/objects/challengeBosses.js +49 -52
- package/dist/objects/challengeCharacters.js +49 -52
- package/dist/objects/challengeCollectibleTypes.js +160 -163
- package/dist/objects/challengeNames.js +49 -52
- package/dist/objects/challengeTrinketType.js +48 -51
- package/dist/objects/characterDamageMultipliers.js +44 -47
- package/dist/objects/characterNames.js +44 -47
- package/dist/objects/characterSpritePNGFileNames.js +44 -47
- package/dist/objects/characterStartingCollectibleTypes.js +49 -52
- package/dist/objects/characterStartingTrinketTypes.js +44 -47
- package/dist/objects/chestNames.js +15 -18
- package/dist/objects/coinNames.js +11 -14
- package/dist/objects/coinSubTypeToValue.js +11 -14
- package/dist/objects/collectibleDescriptions.js +725 -728
- package/dist/objects/collectibleNames.js +725 -728
- package/dist/objects/colors.js +1 -4
- package/dist/objects/directionNames.js +7 -10
- package/dist/objects/directionToDegrees.js +7 -10
- package/dist/objects/directionToMoveAction.js +7 -10
- package/dist/objects/directionToShootAction.js +7 -10
- package/dist/objects/directionToVector.js +9 -12
- package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
- package/dist/objects/doorSlotToDirection.js +11 -14
- package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
- package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
- package/dist/objects/heartNames.js +16 -19
- package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
- package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
- package/dist/objects/kColors.js +1 -4
- package/dist/objects/keyNames.js +8 -11
- package/dist/objects/languageNames.js +9 -12
- package/dist/objects/oppositeDoorSlots.js +11 -14
- package/dist/objects/pillEffectClasses.js +53 -56
- package/dist/objects/pillEffectNames.js +53 -56
- package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
- package/dist/objects/pillEffectTypes.js +53 -56
- package/dist/objects/playerNamePNGFileNames.js +44 -47
- package/dist/objects/playerPortraitPNGFileNames.js +44 -47
- package/dist/objects/roomShapeBounds.js +23 -26
- package/dist/objects/roomShapeCorners.js +128 -131
- package/dist/objects/roomShapeLayoutSizes.js +23 -26
- package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
- package/dist/objects/roomShapeToDoorSlots.js +48 -51
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
- package/dist/objects/roomShapeToGridWidth.js +14 -17
- package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
- package/dist/objects/roomShapeVolumes.js +21 -24
- package/dist/objects/roomTypeNames.js +32 -35
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
- package/dist/objects/sackNames.js +6 -9
- package/dist/objects/slotNames.js +21 -24
- package/dist/objects/stageIDNames.js +33 -36
- package/dist/objects/stageToMusic.js +69 -72
- package/dist/objects/stageToStageID.js +90 -93
- package/dist/objects/stageTypeSuffixes.js +8 -11
- package/dist/objects/transformationNames.js +16 -19
- package/dist/objects/trinketDescriptions.js +192 -195
- package/dist/objects/trinketNames.js +192 -195
- package/dist/objects/versusScreenBackgroundColors.js +39 -42
- package/dist/objects/versusScreenDirtSpotColors.js +39 -42
- package/dist/patchErrorFunctions.js +4 -7
- package/dist/serialization.js +6 -9
- package/dist/sets/LRoomShapesSet.js +7 -10
- package/dist/sets/bigRoomShapesSet.js +10 -13
- package/dist/sets/bossSets.js +261 -264
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
- package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
- package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
- package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
- package/dist/sets/consoleCommandsSet.js +2 -5
- package/dist/sets/entitiesWithArmorSet.js +44 -47
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
- package/dist/sets/itemConfigCardTypesForCards.js +7 -10
- package/dist/sets/lostStyleCharactersSet.js +8 -11
- package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
- package/dist/sets/narrowRoomShapesSet.js +7 -10
- package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
- package/dist/sets/redHeartSubTypesSet.js +6 -9
- package/dist/sets/repentanceBossIDsSet.js +26 -29
- package/dist/sets/sinEntityTypesSet.js +10 -13
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
- package/dist/shaderCrashFix.js +4 -7
- package/dist/shouldFire.js +28 -58
- package/dist/types/AddSubtract.js +1 -2
- package/dist/types/AllButFirst.js +1 -2
- package/dist/types/AllButLast.js +1 -2
- package/dist/types/AnyClass.js +1 -2
- package/dist/types/AnyEntity.js +1 -2
- package/dist/types/AnyFunction.js +1 -2
- package/dist/types/AnyGridEntity.js +1 -2
- package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
- package/dist/types/ConversionHeartSubType.js +1 -2
- package/dist/types/Decrement.js +1 -2
- package/dist/types/ERange.js +1 -2
- package/dist/types/EntityID.js +1 -2
- package/dist/types/FunctionTuple.js +1 -2
- package/dist/types/GridEntityID.js +1 -2
- package/dist/types/HasFunction.js +1 -2
- package/dist/types/IRange.js +1 -2
- package/dist/types/Immutable.js +1 -2
- package/dist/types/Increment.js +1 -2
- package/dist/types/LowercaseKeys.js +1 -2
- package/dist/types/NaturalNumbersLessThan.js +1 -2
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
- package/dist/types/ObjectValues.js +1 -2
- package/dist/types/PickingUpItem.js +15 -22
- package/dist/types/PickupIndex.js +1 -2
- package/dist/types/PlayerIndex.js +1 -2
- package/dist/types/PossibleStatType.js +1 -2
- package/dist/types/PublicInterface.js +1 -2
- package/dist/types/ReadonlyMap.js +1 -4
- package/dist/types/ReadonlyRecord.js +1 -2
- package/dist/types/ReadonlySet.js +1 -4
- package/dist/types/StartsWithLowercase.js +1 -2
- package/dist/types/StartsWithUppercase.js +1 -2
- package/dist/types/TSTLClass.js +1 -2
- package/dist/types/Tuple.js +1 -2
- package/dist/types/TupleKeys.js +1 -2
- package/dist/types/TupleToIntersection.js +1 -2
- package/dist/types/TupleToUnion.js +1 -2
- package/dist/types/TupleWithLengthBetween.js +1 -2
- package/dist/types/TupleWithMaxLength.js +1 -2
- package/dist/types/UnionToIntersection.js +1 -2
- package/dist/types/UppercaseKeys.js +1 -2
- package/dist/types/WeightedArray.js +1 -2
- package/dist/types/WidenLiteral.js +1 -2
- package/dist/types/Writable.js +1 -2
- package/dist/types/private/CallbackTuple.js +1 -2
- package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
- package/package.json +3 -3
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const decorators_1 = require("../../../decorators");
|
|
12
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { EntityType, ModCallback } from "isaac-typescript-definitions";
|
|
8
|
+
import { Exported } from "../../../decorators";
|
|
9
|
+
import { Feature } from "../../private/Feature";
|
|
13
10
|
const v = {
|
|
14
11
|
run: {
|
|
15
12
|
familiarBlacklist: [],
|
|
16
13
|
},
|
|
17
14
|
};
|
|
18
|
-
class NoSirenSteal extends
|
|
15
|
+
export class NoSirenSteal extends Feature {
|
|
19
16
|
// ModCallback.POST_NPC_INIT (27)
|
|
20
17
|
// EntityType.SIREN_HELPER (966)
|
|
21
18
|
postNPCInitSirenHelper = (npc) => {
|
|
@@ -29,9 +26,9 @@ class NoSirenSteal extends Feature_1.Feature {
|
|
|
29
26
|
this.callbacksUsed = [
|
|
30
27
|
// 27
|
|
31
28
|
[
|
|
32
|
-
|
|
29
|
+
ModCallback.POST_NPC_INIT,
|
|
33
30
|
this.postNPCInitSirenHelper,
|
|
34
|
-
[
|
|
31
|
+
[EntityType.SIREN_HELPER],
|
|
35
32
|
],
|
|
36
33
|
];
|
|
37
34
|
}
|
|
@@ -82,7 +79,6 @@ class NoSirenSteal extends Feature_1.Feature {
|
|
|
82
79
|
v.run.familiarBlacklist.push([familiarVariant, familiarSubType]);
|
|
83
80
|
}
|
|
84
81
|
}
|
|
85
|
-
exports.NoSirenSteal = NoSirenSteal;
|
|
86
82
|
__decorate([
|
|
87
|
-
|
|
83
|
+
Exported
|
|
88
84
|
], NoSirenSteal.prototype, "setFamiliarNoSirenSteal", null);
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const ReadonlySet_1 = require("../../../types/ReadonlySet");
|
|
22
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { ButtonAction, CollectibleType, InputHook, ModCallback, SoundEffect, } from "isaac-typescript-definitions";
|
|
8
|
+
import { sfxManager } from "../../../core/cachedClasses";
|
|
9
|
+
import { VectorZero } from "../../../core/constants";
|
|
10
|
+
import { Exported } from "../../../decorators";
|
|
11
|
+
import { getProjectiles, getTears, removeAllProjectiles, removeAllTears, } from "../../../functions/entitiesSpecific";
|
|
12
|
+
import { isTear } from "../../../functions/isaacAPIClass";
|
|
13
|
+
import { logError } from "../../../functions/log";
|
|
14
|
+
import { useActiveItemTemp } from "../../../functions/playerCollectibles";
|
|
15
|
+
import { getAllPlayers } from "../../../functions/playerIndex";
|
|
16
|
+
import { getTSTLClassName } from "../../../functions/tstlClass";
|
|
17
|
+
import { assertDefined, isRepentancePlus } from "../../../functions/utils";
|
|
18
|
+
import { ReadonlySet } from "../../../types/ReadonlySet";
|
|
19
|
+
import { Feature } from "../../private/Feature";
|
|
23
20
|
const v = {
|
|
24
21
|
run: {
|
|
25
22
|
isPseudoPaused: false,
|
|
@@ -27,7 +24,7 @@ const v = {
|
|
|
27
24
|
initialDescriptions: new Map(),
|
|
28
25
|
},
|
|
29
26
|
};
|
|
30
|
-
class Pause extends
|
|
27
|
+
export class Pause extends Feature {
|
|
31
28
|
disableInputs;
|
|
32
29
|
// ModCallback.POST_UPDATE (1)
|
|
33
30
|
postUpdate = () => {
|
|
@@ -35,16 +32,16 @@ class Pause extends Feature_1.Feature {
|
|
|
35
32
|
return;
|
|
36
33
|
}
|
|
37
34
|
const firstPlayer = Isaac.GetPlayer();
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
|
|
35
|
+
useActiveItemTemp(firstPlayer, CollectibleType.PAUSE);
|
|
36
|
+
if (isRepentancePlus()) {
|
|
37
|
+
sfxManager.Stop(SoundEffect.PAUSE_FREEZE);
|
|
41
38
|
}
|
|
42
39
|
this.stopTearsAndProjectilesFromMoving();
|
|
43
40
|
};
|
|
44
41
|
// ModCallback.INPUT_ACTION (13)
|
|
45
42
|
// InputHook.GET_ACTION_VALUE (2)
|
|
46
43
|
inputActionGetActionValue = (_entity, _inputHook, buttonAction) => {
|
|
47
|
-
if (buttonAction !==
|
|
44
|
+
if (buttonAction !== ButtonAction.SHOOT_RIGHT) {
|
|
48
45
|
return undefined;
|
|
49
46
|
}
|
|
50
47
|
if (!v.run.shouldUnpause) {
|
|
@@ -62,18 +59,18 @@ class Pause extends Feature_1.Feature {
|
|
|
62
59
|
super();
|
|
63
60
|
this.callbacksUsed = [
|
|
64
61
|
// 1
|
|
65
|
-
[
|
|
62
|
+
[ModCallback.POST_UPDATE, this.postUpdate],
|
|
66
63
|
// 13
|
|
67
64
|
[
|
|
68
|
-
|
|
65
|
+
ModCallback.INPUT_ACTION,
|
|
69
66
|
this.inputActionGetActionValue,
|
|
70
|
-
[
|
|
67
|
+
[InputHook.GET_ACTION_VALUE],
|
|
71
68
|
],
|
|
72
69
|
];
|
|
73
70
|
this.disableInputs = disableInputs;
|
|
74
71
|
}
|
|
75
72
|
stopTearsAndProjectilesFromMoving() {
|
|
76
|
-
const tearsAndProjectiles = [...
|
|
73
|
+
const tearsAndProjectiles = [...getTears(), ...getProjectiles()];
|
|
77
74
|
for (const tearOrProjectile of tearsAndProjectiles) {
|
|
78
75
|
const ptrHash = GetPtrHash(tearOrProjectile);
|
|
79
76
|
const initialDescription = v.run.initialDescriptions.get(ptrHash);
|
|
@@ -82,10 +79,10 @@ class Pause extends Feature_1.Feature {
|
|
|
82
79
|
}
|
|
83
80
|
tearOrProjectile.Position = initialDescription.position;
|
|
84
81
|
tearOrProjectile.PositionOffset = initialDescription.positionOffset;
|
|
85
|
-
tearOrProjectile.Velocity =
|
|
82
|
+
tearOrProjectile.Velocity = VectorZero;
|
|
86
83
|
tearOrProjectile.Height = initialDescription.height;
|
|
87
84
|
tearOrProjectile.FallingSpeed = 0;
|
|
88
|
-
if (
|
|
85
|
+
if (isTear(tearOrProjectile)) {
|
|
89
86
|
tearOrProjectile.FallingAcceleration =
|
|
90
87
|
initialDescription.fallingAcceleration;
|
|
91
88
|
}
|
|
@@ -118,7 +115,7 @@ class Pause extends Feature_1.Feature {
|
|
|
118
115
|
*/
|
|
119
116
|
pause() {
|
|
120
117
|
if (v.run.isPseudoPaused) {
|
|
121
|
-
|
|
118
|
+
logError("Failed to pseudo-pause the game, since it was already pseudo-paused.");
|
|
122
119
|
return;
|
|
123
120
|
}
|
|
124
121
|
v.run.isPseudoPaused = true;
|
|
@@ -126,7 +123,7 @@ class Pause extends Feature_1.Feature {
|
|
|
126
123
|
// collectible is active. Thus, we manually reset the initial positions and heights on every
|
|
127
124
|
// frame.
|
|
128
125
|
v.run.initialDescriptions.clear();
|
|
129
|
-
const tearsAndProjectiles = [...
|
|
126
|
+
const tearsAndProjectiles = [...getTears(), ...getProjectiles()];
|
|
130
127
|
for (const tearOrProjectile of tearsAndProjectiles) {
|
|
131
128
|
const ptrHash = GetPtrHash(tearOrProjectile);
|
|
132
129
|
const initialDescription = {
|
|
@@ -135,34 +132,34 @@ class Pause extends Feature_1.Feature {
|
|
|
135
132
|
velocity: tearOrProjectile.Velocity,
|
|
136
133
|
height: tearOrProjectile.Height,
|
|
137
134
|
fallingSpeed: tearOrProjectile.FallingSpeed,
|
|
138
|
-
fallingAcceleration:
|
|
135
|
+
fallingAcceleration: isTear(tearOrProjectile)
|
|
139
136
|
? tearOrProjectile.FallingAcceleration
|
|
140
137
|
: tearOrProjectile.FallingAccel,
|
|
141
138
|
};
|
|
142
139
|
v.run.initialDescriptions.set(ptrHash, initialDescription);
|
|
143
140
|
}
|
|
144
141
|
const firstPlayer = Isaac.GetPlayer();
|
|
145
|
-
|
|
146
|
-
if (
|
|
147
|
-
|
|
142
|
+
useActiveItemTemp(firstPlayer, CollectibleType.PAUSE);
|
|
143
|
+
if (isRepentancePlus()) {
|
|
144
|
+
sfxManager.Stop(SoundEffect.PAUSE_FREEZE);
|
|
148
145
|
}
|
|
149
|
-
const tstlClassName =
|
|
150
|
-
|
|
151
|
-
const buttonActionConsole =
|
|
152
|
-
?
|
|
153
|
-
:
|
|
154
|
-
const whitelist = new
|
|
155
|
-
|
|
146
|
+
const tstlClassName = getTSTLClassName(this);
|
|
147
|
+
assertDefined(tstlClassName, "Failed to get the class name for the pause feature.");
|
|
148
|
+
const buttonActionConsole = isRepentancePlus()
|
|
149
|
+
? ButtonAction.CONSOLE_REPENTANCE_PLUS
|
|
150
|
+
: ButtonAction.CONSOLE_REPENTANCE;
|
|
151
|
+
const whitelist = new ReadonlySet([
|
|
152
|
+
ButtonAction.MENU_CONFIRM,
|
|
156
153
|
buttonActionConsole,
|
|
157
154
|
]);
|
|
158
155
|
this.disableInputs.disableAllInputsExceptFor(tstlClassName, whitelist);
|
|
159
|
-
for (const player of
|
|
156
|
+
for (const player of getAllPlayers()) {
|
|
160
157
|
// Disable the controls to prevent the players from moving, shooting, and so on. (We also
|
|
161
158
|
// disable the inputs in the `INPUT_ACTION` callback, but that does not prevent mouse inputs.)
|
|
162
159
|
player.ControlsEnabled = false;
|
|
163
160
|
// Prevent the players from leaving the room. (If we don't reset the velocity, they can
|
|
164
161
|
// continue to move towards a door.)
|
|
165
|
-
player.Velocity =
|
|
162
|
+
player.Velocity = VectorZero;
|
|
166
163
|
}
|
|
167
164
|
this.stopTearsAndProjectilesFromMoving();
|
|
168
165
|
}
|
|
@@ -175,15 +172,15 @@ class Pause extends Feature_1.Feature {
|
|
|
175
172
|
*/
|
|
176
173
|
unpause() {
|
|
177
174
|
if (!v.run.isPseudoPaused) {
|
|
178
|
-
|
|
175
|
+
logError("Failed to pseudo-unpause the game, since it was not already pseudo-paused.");
|
|
179
176
|
return;
|
|
180
177
|
}
|
|
181
178
|
v.run.isPseudoPaused = false;
|
|
182
179
|
v.run.shouldUnpause = true;
|
|
183
|
-
const tstlClassName =
|
|
184
|
-
|
|
180
|
+
const tstlClassName = getTSTLClassName(this);
|
|
181
|
+
assertDefined(tstlClassName, "Failed to find get the class name for the pause feature.");
|
|
185
182
|
this.disableInputs.enableAllInputs(tstlClassName);
|
|
186
|
-
for (const player of
|
|
183
|
+
for (const player of getAllPlayers()) {
|
|
187
184
|
player.ControlsEnabled = true;
|
|
188
185
|
}
|
|
189
186
|
// After a vanilla pause, the tears will not resume their normal velocity and will "stick" to
|
|
@@ -191,17 +188,16 @@ class Pause extends Feature_1.Feature {
|
|
|
191
188
|
// velocity-related variables to their initial values, this will not make a difference. Thus,
|
|
192
189
|
// revert to removing all of the tears and projectiles in the room. (If a Ludovico tear is
|
|
193
190
|
// removed, it will automatically be respawned on the next frame.)
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
removeAllTears();
|
|
192
|
+
removeAllProjectiles();
|
|
196
193
|
}
|
|
197
194
|
}
|
|
198
|
-
exports.Pause = Pause;
|
|
199
195
|
__decorate([
|
|
200
|
-
|
|
196
|
+
Exported
|
|
201
197
|
], Pause.prototype, "isPaused", null);
|
|
202
198
|
__decorate([
|
|
203
|
-
|
|
199
|
+
Exported
|
|
204
200
|
], Pause.prototype, "pause", null);
|
|
205
201
|
__decorate([
|
|
206
|
-
|
|
202
|
+
Exported
|
|
207
203
|
], Pause.prototype, "unpause", null);
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const roomData_1 = require("../../../functions/roomData");
|
|
16
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { EntityFlag, ModCallback } from "isaac-typescript-definitions";
|
|
8
|
+
import { Exported } from "../../../decorators";
|
|
9
|
+
import { ISCFeature } from "../../../enums/ISCFeature";
|
|
10
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
11
|
+
import { spawn } from "../../../functions/entities";
|
|
12
|
+
import { getRoomListIndex } from "../../../functions/roomData";
|
|
13
|
+
import { Feature } from "../../private/Feature";
|
|
17
14
|
const v = {
|
|
18
15
|
run: {
|
|
19
16
|
/** Iterates upward as new persistent entities are created. */
|
|
@@ -32,7 +29,7 @@ const v = {
|
|
|
32
29
|
spawnedPersistentEntities: new Map(),
|
|
33
30
|
},
|
|
34
31
|
};
|
|
35
|
-
class PersistentEntities extends
|
|
32
|
+
export class PersistentEntities extends Feature {
|
|
36
33
|
roomHistory;
|
|
37
34
|
// ModCallback.POST_ENTITY_REMOVE (67)
|
|
38
35
|
postEntityRemove = (entity) => {
|
|
@@ -53,7 +50,7 @@ class PersistentEntities extends Feature_1.Feature {
|
|
|
53
50
|
};
|
|
54
51
|
// ModCallbackCustom.POST_NEW_ROOM_REORDERED
|
|
55
52
|
postNewRoomReordered = () => {
|
|
56
|
-
const roomListIndex =
|
|
53
|
+
const roomListIndex = getRoomListIndex();
|
|
57
54
|
const persistentEntities = [...v.level.persistentEntities];
|
|
58
55
|
const persistentEntitiesInThisRoom = persistentEntities.filter(([_index, description]) => roomListIndex === description.roomListIndex);
|
|
59
56
|
for (const [index, description] of persistentEntitiesInThisRoom) {
|
|
@@ -66,13 +63,13 @@ class PersistentEntities extends Feature_1.Feature {
|
|
|
66
63
|
/** @internal */
|
|
67
64
|
constructor(roomHistory) {
|
|
68
65
|
super();
|
|
69
|
-
this.featuresUsed = [
|
|
66
|
+
this.featuresUsed = [ISCFeature.ROOM_HISTORY];
|
|
70
67
|
this.callbacksUsed = [
|
|
71
68
|
// 67
|
|
72
|
-
[
|
|
69
|
+
[ModCallback.POST_ENTITY_REMOVE, this.postEntityRemove],
|
|
73
70
|
];
|
|
74
71
|
this.customCallbacksUsed = [
|
|
75
|
-
[
|
|
72
|
+
[ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
|
|
76
73
|
];
|
|
77
74
|
this.roomHistory = roomHistory;
|
|
78
75
|
}
|
|
@@ -98,9 +95,9 @@ class PersistentEntities extends Feature_1.Feature {
|
|
|
98
95
|
v.level.persistentEntities.set(index, persistentEntityDescription);
|
|
99
96
|
}
|
|
100
97
|
spawnAndTrack(entityType, variant, subType, position, index, respawning = false) {
|
|
101
|
-
const entity =
|
|
98
|
+
const entity = spawn(entityType, variant, subType, position);
|
|
102
99
|
if (respawning) {
|
|
103
|
-
entity.ClearEntityFlags(
|
|
100
|
+
entity.ClearEntityFlags(EntityFlag.APPEAR);
|
|
104
101
|
}
|
|
105
102
|
const ptrHash = GetPtrHash(entity);
|
|
106
103
|
// Keep track that we spawned it so that we can respawn it if the player re-enters the room.
|
|
@@ -162,10 +159,9 @@ class PersistentEntities extends Feature_1.Feature {
|
|
|
162
159
|
};
|
|
163
160
|
}
|
|
164
161
|
}
|
|
165
|
-
exports.PersistentEntities = PersistentEntities;
|
|
166
162
|
__decorate([
|
|
167
|
-
|
|
163
|
+
Exported
|
|
168
164
|
], PersistentEntities.prototype, "removePersistentEntity", null);
|
|
169
165
|
__decorate([
|
|
170
|
-
|
|
166
|
+
Exported
|
|
171
167
|
], PersistentEntities.prototype, "spawnPersistentEntity", null);
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const DefaultMap_1 = require("../../DefaultMap");
|
|
20
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { EntityType, ModCallback, RoomType, } from "isaac-typescript-definitions";
|
|
8
|
+
import { game } from "../../../core/cachedClasses";
|
|
9
|
+
import { Exported } from "../../../decorators";
|
|
10
|
+
import { ISCFeature } from "../../../enums/ISCFeature";
|
|
11
|
+
import { getEntityID } from "../../../functions/entities";
|
|
12
|
+
import { onOrBeforeRoomFrame } from "../../../functions/frames";
|
|
13
|
+
import { getRoomListIndex } from "../../../functions/roomData";
|
|
14
|
+
import { onAscent } from "../../../functions/stage";
|
|
15
|
+
import { vectorEquals } from "../../../functions/vector";
|
|
16
|
+
import { DefaultMap } from "../../DefaultMap";
|
|
17
|
+
import { Feature } from "../../private/Feature";
|
|
21
18
|
const v = {
|
|
22
19
|
run: {
|
|
23
20
|
/** Is incremented before assignment. Thus, the first pickup will have an index of 1. */
|
|
@@ -27,13 +24,13 @@ const v = {
|
|
|
27
24
|
},
|
|
28
25
|
level: {
|
|
29
26
|
/** Indexed by room list index. */
|
|
30
|
-
pickupData: new
|
|
27
|
+
pickupData: new DefaultMap(() => new Map()),
|
|
31
28
|
},
|
|
32
29
|
room: {
|
|
33
30
|
pickupIndexes: new Map(),
|
|
34
31
|
},
|
|
35
32
|
};
|
|
36
|
-
class PickupIndexCreation extends
|
|
33
|
+
export class PickupIndexCreation extends Feature {
|
|
37
34
|
roomHistory;
|
|
38
35
|
saveDataManager;
|
|
39
36
|
// ModCallback.POST_PICKUP_INIT (34)
|
|
@@ -50,15 +47,15 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
50
47
|
/** @internal */
|
|
51
48
|
constructor(roomHistory, saveDataManager) {
|
|
52
49
|
super();
|
|
53
|
-
this.featuresUsed = [
|
|
50
|
+
this.featuresUsed = [ISCFeature.ROOM_HISTORY, ISCFeature.SAVE_DATA_MANAGER];
|
|
54
51
|
this.callbacksUsed = [
|
|
55
52
|
// 34
|
|
56
|
-
[
|
|
53
|
+
[ModCallback.POST_PICKUP_INIT, this.postPickupInit],
|
|
57
54
|
// 67
|
|
58
55
|
[
|
|
59
|
-
|
|
56
|
+
ModCallback.POST_ENTITY_REMOVE,
|
|
60
57
|
this.postEntityRemovePickup,
|
|
61
|
-
[
|
|
58
|
+
[EntityType.PICKUP],
|
|
62
59
|
],
|
|
63
60
|
];
|
|
64
61
|
this.roomHistory = roomHistory;
|
|
@@ -76,11 +73,11 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
76
73
|
// First, handle the special case of re-entering a room with a previously tracked pickup. If we
|
|
77
74
|
// find a match in the level pickup data, we will use the pickup index from the match.
|
|
78
75
|
const pickupIndexFromLevelData = this.getPickupIndexFromPreviousData(pickup);
|
|
79
|
-
const room =
|
|
76
|
+
const room = game.GetRoom();
|
|
80
77
|
const isFirstVisit = room.IsFirstVisit();
|
|
81
78
|
if (pickupIndexFromLevelData !== undefined
|
|
82
79
|
&& !isFirstVisit
|
|
83
|
-
&&
|
|
80
|
+
&& onOrBeforeRoomFrame(0)) {
|
|
84
81
|
v.room.pickupIndexes.set(ptrHash, pickupIndexFromLevelData);
|
|
85
82
|
return;
|
|
86
83
|
}
|
|
@@ -89,7 +86,7 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
89
86
|
v.room.pickupIndexes.set(ptrHash, v.run.pickupCounter);
|
|
90
87
|
}
|
|
91
88
|
getPickupIndexFromPreviousData(pickup) {
|
|
92
|
-
const roomListIndex =
|
|
89
|
+
const roomListIndex = getRoomListIndex();
|
|
93
90
|
const pickupDescriptions = v.level.pickupData.getAndSetDefault(roomListIndex);
|
|
94
91
|
let pickupIndex = getStoredPickupIndex(pickup, pickupDescriptions);
|
|
95
92
|
pickupIndex ??= this.getPostAscentPickupIndex(pickup);
|
|
@@ -141,16 +138,16 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
141
138
|
*/
|
|
142
139
|
// eslint-disable-next-line complete/no-mutable-return
|
|
143
140
|
getPickupDataMapForCurrentRoom() {
|
|
144
|
-
if (
|
|
141
|
+
if (onAscent()) {
|
|
145
142
|
return undefined;
|
|
146
143
|
}
|
|
147
|
-
const room =
|
|
144
|
+
const room = game.GetRoom();
|
|
148
145
|
const roomType = room.GetType();
|
|
149
146
|
switch (roomType) {
|
|
150
|
-
case
|
|
147
|
+
case RoomType.TREASURE: {
|
|
151
148
|
return v.run.pickupDataTreasureRooms;
|
|
152
149
|
}
|
|
153
|
-
case
|
|
150
|
+
case RoomType.BOSS: {
|
|
154
151
|
return v.run.pickupDataBossRooms;
|
|
155
152
|
}
|
|
156
153
|
default: {
|
|
@@ -161,16 +158,16 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
161
158
|
getPostAscentPickupIndex(pickup) {
|
|
162
159
|
// If we have not found the pickup index yet, we might be re-entering a post-Ascent Treasure
|
|
163
160
|
// Room or Boss Room.
|
|
164
|
-
if (!
|
|
161
|
+
if (!onAscent()) {
|
|
165
162
|
return undefined;
|
|
166
163
|
}
|
|
167
|
-
const room =
|
|
164
|
+
const room = game.GetRoom();
|
|
168
165
|
const roomType = room.GetType();
|
|
169
166
|
switch (roomType) {
|
|
170
|
-
case
|
|
167
|
+
case RoomType.TREASURE: {
|
|
171
168
|
return getStoredPickupIndex(pickup, v.run.pickupDataTreasureRooms);
|
|
172
169
|
}
|
|
173
|
-
case
|
|
170
|
+
case RoomType.BOSS: {
|
|
174
171
|
return getStoredPickupIndex(pickup, v.run.pickupDataBossRooms);
|
|
175
172
|
}
|
|
176
173
|
default: {
|
|
@@ -209,17 +206,16 @@ class PickupIndexCreation extends Feature_1.Feature {
|
|
|
209
206
|
if (pickupIndex !== undefined) {
|
|
210
207
|
return pickupIndex;
|
|
211
208
|
}
|
|
212
|
-
const entityID =
|
|
209
|
+
const entityID = getEntityID(pickup);
|
|
213
210
|
error(`Failed to generate a new pickup index for pickup: ${entityID}`);
|
|
214
211
|
}
|
|
215
212
|
}
|
|
216
|
-
exports.PickupIndexCreation = PickupIndexCreation;
|
|
217
213
|
__decorate([
|
|
218
|
-
|
|
214
|
+
Exported
|
|
219
215
|
], PickupIndexCreation.prototype, "getPickupIndex", null);
|
|
220
216
|
function getStoredPickupIndex(pickup, pickupDescriptions) {
|
|
221
217
|
for (const [pickupIndex, pickupDescription] of pickupDescriptions) {
|
|
222
|
-
if (
|
|
218
|
+
if (vectorEquals(pickupDescription.position, pickup.Position)
|
|
223
219
|
&& pickupDescription.initSeed === pickup.InitSeed) {
|
|
224
220
|
return pickupIndex;
|
|
225
221
|
}
|
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const DefaultMap_1 = require("../../DefaultMap");
|
|
16
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { Exported } from "../../../decorators";
|
|
8
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
9
|
+
import { arrayRemoveInPlace } from "../../../functions/array";
|
|
10
|
+
import { isActiveCollectible } from "../../../functions/collectibles";
|
|
11
|
+
import { defaultMapGetPlayer } from "../../../functions/playerDataStructures";
|
|
12
|
+
import { DefaultMap } from "../../DefaultMap";
|
|
13
|
+
import { Feature } from "../../private/Feature";
|
|
17
14
|
const v = {
|
|
18
15
|
run: {
|
|
19
|
-
playersCollectibleTypes: new
|
|
16
|
+
playersCollectibleTypes: new DefaultMap(() => []),
|
|
20
17
|
},
|
|
21
18
|
};
|
|
22
|
-
class PlayerCollectibleTracking extends
|
|
19
|
+
export class PlayerCollectibleTracking extends Feature {
|
|
23
20
|
// ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED
|
|
24
21
|
postPlayerCollectibleAdded = (player, collectibleType) => {
|
|
25
|
-
const collectibleTypes =
|
|
22
|
+
const collectibleTypes = defaultMapGetPlayer(v.run.playersCollectibleTypes, player, player);
|
|
26
23
|
collectibleTypes.push(collectibleType);
|
|
27
24
|
};
|
|
28
25
|
// ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED
|
|
29
26
|
postPlayerCollectibleRemoved = (player, collectibleType) => {
|
|
30
|
-
const collectibleTypes =
|
|
31
|
-
|
|
27
|
+
const collectibleTypes = defaultMapGetPlayer(v.run.playersCollectibleTypes, player, player);
|
|
28
|
+
arrayRemoveInPlace(collectibleTypes, collectibleType);
|
|
32
29
|
};
|
|
33
30
|
/** @internal */
|
|
34
31
|
v = v;
|
|
@@ -37,11 +34,11 @@ class PlayerCollectibleTracking extends Feature_1.Feature {
|
|
|
37
34
|
super();
|
|
38
35
|
this.customCallbacksUsed = [
|
|
39
36
|
[
|
|
40
|
-
|
|
37
|
+
ModCallbackCustom.POST_PLAYER_COLLECTIBLE_ADDED,
|
|
41
38
|
this.postPlayerCollectibleAdded,
|
|
42
39
|
],
|
|
43
40
|
[
|
|
44
|
-
|
|
41
|
+
ModCallbackCustom.POST_PLAYER_COLLECTIBLE_REMOVED,
|
|
45
42
|
this.postPlayerCollectibleRemoved,
|
|
46
43
|
],
|
|
47
44
|
];
|
|
@@ -71,11 +68,11 @@ class PlayerCollectibleTracking extends Feature_1.Feature {
|
|
|
71
68
|
* @public
|
|
72
69
|
*/
|
|
73
70
|
getPlayerCollectibleTypes(player, includeActiveCollectibles = true) {
|
|
74
|
-
const collectibleTypes =
|
|
71
|
+
const collectibleTypes = defaultMapGetPlayer(v.run.playersCollectibleTypes, player, player);
|
|
75
72
|
if (includeActiveCollectibles) {
|
|
76
73
|
return collectibleTypes;
|
|
77
74
|
}
|
|
78
|
-
return collectibleTypes.filter((collectibleType) => !
|
|
75
|
+
return collectibleTypes.filter((collectibleType) => !isActiveCollectible(collectibleType));
|
|
79
76
|
}
|
|
80
77
|
/**
|
|
81
78
|
* Helper function to get the last passive collectible type that the player picked up. In most
|
|
@@ -93,10 +90,9 @@ class PlayerCollectibleTracking extends Feature_1.Feature {
|
|
|
93
90
|
return collectibleTypes.at(-1);
|
|
94
91
|
}
|
|
95
92
|
}
|
|
96
|
-
exports.PlayerCollectibleTracking = PlayerCollectibleTracking;
|
|
97
93
|
__decorate([
|
|
98
|
-
|
|
94
|
+
Exported
|
|
99
95
|
], PlayerCollectibleTracking.prototype, "getPlayerCollectibleTypes", null);
|
|
100
96
|
__decorate([
|
|
101
|
-
|
|
97
|
+
Exported
|
|
102
98
|
], PlayerCollectibleTracking.prototype, "getPlayerLastPassiveCollectibleType", null);
|