isaacscript-common 87.9.7 → 87.10.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/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/index.rollup.d.ts +11 -11
- 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.d.ts +11 -11
- package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
- 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
- package/src/interfaces/PlayerHealth.ts +12 -11
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.hideRoomOnMinimap = hideRoomOnMinimap;
|
|
9
|
-
exports.isRoomVisible = isRoomVisible;
|
|
10
|
-
exports.setAllDisplayFlags = setAllDisplayFlags;
|
|
11
|
-
exports.setFloorDisplayFlags = setFloorDisplayFlags;
|
|
12
|
-
exports.setRoomDisplayFlags = setRoomDisplayFlags;
|
|
13
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
14
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
15
|
-
const flag_1 = require("./flag");
|
|
16
|
-
const roomData_1 = require("./roomData");
|
|
17
|
-
const rooms_1 = require("./rooms");
|
|
18
|
-
const types_1 = require("./types");
|
|
19
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { DisplayFlagZero } from "isaac-typescript-definitions";
|
|
2
|
+
import { game } from "../core/cachedClasses";
|
|
3
|
+
import { addFlag } from "./flag";
|
|
4
|
+
import { getRoomDescriptor, getRoomGridIndex } from "./roomData";
|
|
5
|
+
import { getRoomsInsideGrid } from "./rooms";
|
|
6
|
+
import { isInteger } from "./types";
|
|
7
|
+
import { assertDefined } from "./utils";
|
|
20
8
|
/**
|
|
21
9
|
* Helper function to add a `DisplayFlag` to a particular room's minimap display flags (e.g. whether
|
|
22
10
|
* it is visible and so on).
|
|
@@ -28,9 +16,9 @@ const utils_1 = require("./utils");
|
|
|
28
16
|
* @param updateVisibility Optional. Whether to call the `Level.UpdateVisibility` method in order to
|
|
29
17
|
* make the changes immediately visible. Default is true.
|
|
30
18
|
*/
|
|
31
|
-
function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true) {
|
|
19
|
+
export function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true) {
|
|
32
20
|
const oldDisplayFlags = getRoomDisplayFlags(roomGridIndex);
|
|
33
|
-
const newDisplayFlags =
|
|
21
|
+
const newDisplayFlags = addFlag(oldDisplayFlags, displayFlag);
|
|
34
22
|
setRoomDisplayFlags(roomGridIndex, newDisplayFlags, updateVisibility);
|
|
35
23
|
}
|
|
36
24
|
/**
|
|
@@ -41,8 +29,8 @@ function addRoomDisplayFlag(roomGridIndex, displayFlag, updateVisibility = true)
|
|
|
41
29
|
* This function automatically calls the `Level.UpdateVisibility` after setting the flags so that
|
|
42
30
|
* the changes will be immediately visible.
|
|
43
31
|
*/
|
|
44
|
-
function clearFloorDisplayFlags() {
|
|
45
|
-
setAllDisplayFlags(
|
|
32
|
+
export function clearFloorDisplayFlags() {
|
|
33
|
+
setAllDisplayFlags(DisplayFlagZero);
|
|
46
34
|
}
|
|
47
35
|
/**
|
|
48
36
|
* Helper function to set the value of `DisplayFlag` for a room 0.
|
|
@@ -56,8 +44,8 @@ function clearFloorDisplayFlags() {
|
|
|
56
44
|
* adjacent room), the room will appear on the minimap again. If you want to permanently hide the
|
|
57
45
|
* room even in this circumstance, use the `hideRoomOnMinimap` helper function instead.
|
|
58
46
|
*/
|
|
59
|
-
function clearRoomDisplayFlags(roomGridIndex) {
|
|
60
|
-
setRoomDisplayFlags(roomGridIndex,
|
|
47
|
+
export function clearRoomDisplayFlags(roomGridIndex) {
|
|
48
|
+
setRoomDisplayFlags(roomGridIndex, DisplayFlagZero);
|
|
61
49
|
}
|
|
62
50
|
/**
|
|
63
51
|
* Helper function to get the minimap `DisplayFlag` value for every room on the floor. Returns a map
|
|
@@ -67,9 +55,9 @@ function clearRoomDisplayFlags(roomGridIndex) {
|
|
|
67
55
|
*
|
|
68
56
|
* @param minimapAPI Optional. If MinimapAPI should be used, if present. Default is true.
|
|
69
57
|
*/
|
|
70
|
-
function getFloorDisplayFlags(minimapAPI = true) {
|
|
58
|
+
export function getFloorDisplayFlags(minimapAPI = true) {
|
|
71
59
|
const displayFlagsMap = new Map();
|
|
72
|
-
for (const roomDescriptor of
|
|
60
|
+
for (const roomDescriptor of getRoomsInsideGrid()) {
|
|
73
61
|
const roomGridIndex = roomDescriptor.SafeGridIndex;
|
|
74
62
|
const displayFlags = getRoomDisplayFlags(roomGridIndex, minimapAPI);
|
|
75
63
|
displayFlagsMap.set(roomGridIndex, displayFlags);
|
|
@@ -85,14 +73,14 @@ function getFloorDisplayFlags(minimapAPI = true) {
|
|
|
85
73
|
* @param roomGridIndex Optional. Default is the current room index.
|
|
86
74
|
* @param minimapAPI Optional. If MinimapAPI should be used, if present. Default is true.
|
|
87
75
|
*/
|
|
88
|
-
function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
|
|
89
|
-
roomGridIndex ??=
|
|
76
|
+
export function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
|
|
77
|
+
roomGridIndex ??= getRoomGridIndex();
|
|
90
78
|
if (MinimapAPI === undefined || !minimapAPI) {
|
|
91
|
-
const roomDescriptor =
|
|
79
|
+
const roomDescriptor = getRoomDescriptor(roomGridIndex);
|
|
92
80
|
return roomDescriptor.DisplayFlags;
|
|
93
81
|
}
|
|
94
82
|
const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
|
|
95
|
-
|
|
83
|
+
assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
|
|
96
84
|
return minimapAPIRoomDescriptor.GetDisplayFlags();
|
|
97
85
|
}
|
|
98
86
|
/**
|
|
@@ -104,14 +92,14 @@ function getRoomDisplayFlags(roomGridIndex, minimapAPI = true) {
|
|
|
104
92
|
*
|
|
105
93
|
* This function automatically accounts for if MinimapAPI is being used.
|
|
106
94
|
*/
|
|
107
|
-
function hideRoomOnMinimap(roomGridIndex) {
|
|
95
|
+
export function hideRoomOnMinimap(roomGridIndex) {
|
|
108
96
|
clearRoomDisplayFlags(roomGridIndex);
|
|
109
97
|
// In vanilla, the map only updates at the beginning of every room. In MinimapAPI, it constant
|
|
110
98
|
// updates, so we must specifically tell MinimapAPI that the room should be hidden using the
|
|
111
99
|
// `Hidden` property.
|
|
112
100
|
if (MinimapAPI !== undefined) {
|
|
113
101
|
const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
|
|
114
|
-
|
|
102
|
+
assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
|
|
115
103
|
minimapAPIRoomDescriptor.Hidden = true;
|
|
116
104
|
}
|
|
117
105
|
}
|
|
@@ -121,12 +109,12 @@ function hideRoomOnMinimap(roomGridIndex) {
|
|
|
121
109
|
* @param roomGridIndexOrRoomDescriptor The room to check.
|
|
122
110
|
* @param minimapAPI Optional. Whether MinimapAPI should be used, if present. Default is true.
|
|
123
111
|
*/
|
|
124
|
-
function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
|
|
125
|
-
const roomGridIndex =
|
|
112
|
+
export function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
|
|
113
|
+
const roomGridIndex = isInteger(roomGridIndexOrRoomDescriptor)
|
|
126
114
|
? roomGridIndexOrRoomDescriptor
|
|
127
115
|
: roomGridIndexOrRoomDescriptor.SafeGridIndex;
|
|
128
116
|
const roomDisplayFlags = getRoomDisplayFlags(roomGridIndex, minimapAPI);
|
|
129
|
-
return roomDisplayFlags !==
|
|
117
|
+
return roomDisplayFlags !== DisplayFlagZero;
|
|
130
118
|
}
|
|
131
119
|
/**
|
|
132
120
|
* Helper function to set the minimap `DisplayFlag` value for every room on the floor at once.
|
|
@@ -136,14 +124,14 @@ function isRoomVisible(roomGridIndexOrRoomDescriptor, minimapAPI = true) {
|
|
|
136
124
|
*
|
|
137
125
|
* This function automatically accounts for if MinimapAPI is being used.
|
|
138
126
|
*/
|
|
139
|
-
function setAllDisplayFlags(displayFlags) {
|
|
140
|
-
for (const room of
|
|
127
|
+
export function setAllDisplayFlags(displayFlags) {
|
|
128
|
+
for (const room of getRoomsInsideGrid()) {
|
|
141
129
|
// We pass false to the `updateVisibility` argument as a small optimization.
|
|
142
130
|
setRoomDisplayFlags(room.SafeGridIndex, displayFlags, false);
|
|
143
131
|
}
|
|
144
132
|
// In vanilla, we must call the "Level.UpdateVisibility" method for the changes to be visible.
|
|
145
133
|
if (MinimapAPI === undefined) {
|
|
146
|
-
const level =
|
|
134
|
+
const level = game.GetLevel();
|
|
147
135
|
level.UpdateVisibility();
|
|
148
136
|
}
|
|
149
137
|
}
|
|
@@ -157,14 +145,14 @@ function setAllDisplayFlags(displayFlags) {
|
|
|
157
145
|
*
|
|
158
146
|
* @param displayFlagsMap A map of the display flags that is indexed by the room's safe grid index.
|
|
159
147
|
*/
|
|
160
|
-
function setFloorDisplayFlags(displayFlagsMap) {
|
|
148
|
+
export function setFloorDisplayFlags(displayFlagsMap) {
|
|
161
149
|
for (const [roomGridIndex, displayFlags] of displayFlagsMap) {
|
|
162
150
|
// We pass false to the `updateVisibility` argument as a small optimization.
|
|
163
151
|
setRoomDisplayFlags(roomGridIndex, displayFlags, false);
|
|
164
152
|
}
|
|
165
153
|
// In vanilla, we must call the "Level.UpdateVisibility" method for the changes to be visible.
|
|
166
154
|
if (MinimapAPI === undefined) {
|
|
167
|
-
const level =
|
|
155
|
+
const level = game.GetLevel();
|
|
168
156
|
level.UpdateVisibility();
|
|
169
157
|
}
|
|
170
158
|
}
|
|
@@ -181,19 +169,19 @@ function setFloorDisplayFlags(displayFlagsMap) {
|
|
|
181
169
|
* if you are doing a bunch of display flag setting and then manually call
|
|
182
170
|
* the `Level.UpdateVisibility` method after you are done.
|
|
183
171
|
*/
|
|
184
|
-
function setRoomDisplayFlags(roomGridIndex, displayFlags, updateVisibility = true) {
|
|
185
|
-
roomGridIndex ??=
|
|
172
|
+
export function setRoomDisplayFlags(roomGridIndex, displayFlags, updateVisibility = true) {
|
|
173
|
+
roomGridIndex ??= getRoomGridIndex();
|
|
186
174
|
if (MinimapAPI === undefined) {
|
|
187
|
-
const roomDescriptor =
|
|
175
|
+
const roomDescriptor = getRoomDescriptor(roomGridIndex);
|
|
188
176
|
roomDescriptor.DisplayFlags = displayFlags;
|
|
189
177
|
if (updateVisibility) {
|
|
190
|
-
const level =
|
|
178
|
+
const level = game.GetLevel();
|
|
191
179
|
level.UpdateVisibility();
|
|
192
180
|
}
|
|
193
181
|
}
|
|
194
182
|
else {
|
|
195
183
|
const minimapAPIRoomDescriptor = MinimapAPI.GetRoomByIdx(roomGridIndex);
|
|
196
|
-
|
|
184
|
+
assertDefined(minimapAPIRoomDescriptor, `Failed to get the MinimapAPI room descriptor for the room at grid index: ${roomGridIndex}`);
|
|
197
185
|
minimapAPIRoomDescriptor.SetDisplayFlags(displayFlags);
|
|
198
186
|
}
|
|
199
187
|
}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initModFeatures = initModFeatures;
|
|
4
1
|
/**
|
|
5
2
|
* Helper function to instantiate an array of mod features all at once. Use this function if your
|
|
6
3
|
* mod uses the pattern of expressing mod features as `ModFeature` classes.
|
|
@@ -26,7 +23,7 @@ exports.initModFeatures = initModFeatures;
|
|
|
26
23
|
* @returns An array of the instantiated features in the same order that the constructors were
|
|
27
24
|
* passed in. (In most cases, you probably won't need the returned array.)
|
|
28
25
|
*/
|
|
29
|
-
function initModFeatures(mod, modFeatures, init = true) {
|
|
26
|
+
export function initModFeatures(mod, modFeatures, init = true) {
|
|
30
27
|
const instantiatedModFeatures = [];
|
|
31
28
|
for (const modFeature of modFeatures) {
|
|
32
29
|
// eslint-disable-next-line new-cap
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.newArray = newArray;
|
|
4
|
-
const deepCopy_1 = require("./deepCopy");
|
|
5
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { deepCopy } from "./deepCopy";
|
|
2
|
+
import { repeat } from "./utils";
|
|
6
3
|
/**
|
|
7
4
|
* Initializes an array with all of the elements containing the specified default value.
|
|
8
5
|
*
|
|
@@ -19,10 +16,10 @@ const utils_1 = require("./utils");
|
|
|
19
16
|
* ```
|
|
20
17
|
*/
|
|
21
18
|
// eslint-disable-next-line complete/no-mutable-return
|
|
22
|
-
function newArray(defaultValue, size) {
|
|
19
|
+
export function newArray(defaultValue, size) {
|
|
23
20
|
const array = [];
|
|
24
|
-
|
|
25
|
-
const copy =
|
|
21
|
+
repeat(size, () => {
|
|
22
|
+
const copy = deepCopy(defaultValue);
|
|
26
23
|
array.push(copy);
|
|
27
24
|
});
|
|
28
25
|
return array;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
7
|
-
const curses_1 = require("./curses");
|
|
8
|
-
const roomData_1 = require("./roomData");
|
|
9
|
-
const stage_1 = require("./stage");
|
|
1
|
+
import { GameStateFlag, GridRoom, LevelCurse, LevelStage, StageType, } from "isaac-typescript-definitions";
|
|
2
|
+
import { game } from "../core/cachedClasses";
|
|
3
|
+
import { hasCurse } from "./curses";
|
|
4
|
+
import { getRoomGridIndex } from "./roomData";
|
|
5
|
+
import { calculateStageType, calculateStageTypeRepentance, onRepentanceStage, } from "./stage";
|
|
10
6
|
/**
|
|
11
7
|
* Helper function to get the stage that a trapdoor or heaven door would take the player to, based
|
|
12
8
|
* on the current stage, room, and game state flags.
|
|
@@ -15,41 +11,41 @@ const stage_1 = require("./stage");
|
|
|
15
11
|
* `getNextStageUsingHistory` helper function instead (from the stage history feature). Handling
|
|
16
12
|
* this requires stateful tracking as the player progresses through the run.
|
|
17
13
|
*/
|
|
18
|
-
function getNextStage() {
|
|
19
|
-
const level =
|
|
20
|
-
const backwardsPath =
|
|
21
|
-
const mausoleumHeartKilled =
|
|
14
|
+
export function getNextStage() {
|
|
15
|
+
const level = game.GetLevel();
|
|
16
|
+
const backwardsPath = game.GetStateFlag(GameStateFlag.BACKWARDS_PATH);
|
|
17
|
+
const mausoleumHeartKilled = game.GetStateFlag(GameStateFlag.MAUSOLEUM_HEART_KILLED);
|
|
22
18
|
const stage = level.GetStage();
|
|
23
19
|
// First, handle the special case of being on the backwards path.
|
|
24
20
|
if (backwardsPath) {
|
|
25
21
|
const nextStage = stage - 1;
|
|
26
|
-
return nextStage === 0 ?
|
|
22
|
+
return nextStage === 0 ? LevelStage.HOME : nextStage;
|
|
27
23
|
}
|
|
28
|
-
const repentanceStage =
|
|
29
|
-
const roomGridIndex =
|
|
24
|
+
const repentanceStage = onRepentanceStage();
|
|
25
|
+
const roomGridIndex = getRoomGridIndex();
|
|
30
26
|
// Second, handle the special case of being in a specific off-grid room.
|
|
31
27
|
switch (roomGridIndex) {
|
|
32
28
|
// -8
|
|
33
29
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
34
|
-
case
|
|
35
|
-
return
|
|
30
|
+
case GridRoom.BLUE_WOMB: {
|
|
31
|
+
return LevelStage.BLUE_WOMB;
|
|
36
32
|
}
|
|
37
33
|
// -9
|
|
38
34
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
39
|
-
case
|
|
40
|
-
return
|
|
35
|
+
case GridRoom.VOID: {
|
|
36
|
+
return LevelStage.VOID;
|
|
41
37
|
}
|
|
42
38
|
// -10
|
|
43
39
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
44
|
-
case
|
|
40
|
+
case GridRoom.SECRET_EXIT: {
|
|
45
41
|
if (repentanceStage) {
|
|
46
42
|
// e.g. From Downpour 2 to Mines 1, etc.
|
|
47
43
|
return stage + 1;
|
|
48
44
|
}
|
|
49
|
-
if (stage ===
|
|
50
|
-
|| (stage ===
|
|
45
|
+
if (stage === LevelStage.DEPTHS_2
|
|
46
|
+
|| (stage === LevelStage.DEPTHS_1 && hasCurse(LevelCurse.LABYRINTH))) {
|
|
51
47
|
// From Depths 2 to Mausoleum 2 through the strange door.
|
|
52
|
-
return
|
|
48
|
+
return LevelStage.DEPTHS_2;
|
|
53
49
|
}
|
|
54
50
|
// e.g. From Basement 1 to Downpour 1, from Basement 2 to Downpour 2, etc.
|
|
55
51
|
return stage;
|
|
@@ -59,39 +55,39 @@ function getNextStage() {
|
|
|
59
55
|
}
|
|
60
56
|
}
|
|
61
57
|
// 2
|
|
62
|
-
if (repentanceStage && stage ===
|
|
58
|
+
if (repentanceStage && stage === LevelStage.BASEMENT_2) {
|
|
63
59
|
// From Downpour 2 to Caves 2.
|
|
64
|
-
return
|
|
60
|
+
return LevelStage.CAVES_2;
|
|
65
61
|
}
|
|
66
62
|
// 4
|
|
67
|
-
if (repentanceStage && stage ===
|
|
63
|
+
if (repentanceStage && stage === LevelStage.CAVES_2) {
|
|
68
64
|
// From Mines 2 to Depths 2.
|
|
69
|
-
return
|
|
65
|
+
return LevelStage.DEPTHS_2;
|
|
70
66
|
}
|
|
71
67
|
// 6
|
|
72
|
-
if (repentanceStage && stage ===
|
|
68
|
+
if (repentanceStage && stage === LevelStage.DEPTHS_2) {
|
|
73
69
|
if (mausoleumHeartKilled) {
|
|
74
70
|
// From Mausoleum 2 to Corpse 1.
|
|
75
|
-
return
|
|
71
|
+
return LevelStage.WOMB_1;
|
|
76
72
|
}
|
|
77
73
|
// From Mausoleum 2 to Womb 2.
|
|
78
|
-
return
|
|
74
|
+
return LevelStage.WOMB_2;
|
|
79
75
|
}
|
|
80
76
|
// 8
|
|
81
|
-
if (stage ===
|
|
77
|
+
if (stage === LevelStage.WOMB_2) {
|
|
82
78
|
// From Womb 2 to Sheol or Cathedral.
|
|
83
|
-
return
|
|
79
|
+
return LevelStage.SHEOL_CATHEDRAL;
|
|
84
80
|
}
|
|
85
81
|
// 11
|
|
86
|
-
if (stage ===
|
|
82
|
+
if (stage === LevelStage.DARK_ROOM_CHEST) {
|
|
87
83
|
// - The Chest goes to The Chest.
|
|
88
84
|
// - The Dark Room goes to the Dark Room.
|
|
89
|
-
return
|
|
85
|
+
return LevelStage.DARK_ROOM_CHEST;
|
|
90
86
|
}
|
|
91
87
|
// 12
|
|
92
|
-
if (stage ===
|
|
88
|
+
if (stage === LevelStage.VOID) {
|
|
93
89
|
// The Void goes to The Void.
|
|
94
|
-
return
|
|
90
|
+
return LevelStage.VOID;
|
|
95
91
|
}
|
|
96
92
|
// By default, go to the next floor.
|
|
97
93
|
return stage + 1;
|
|
@@ -107,69 +103,69 @@ function getNextStage() {
|
|
|
107
103
|
* @param upwards Whether the player should go up to Cathedral in the case of being on Womb 2.
|
|
108
104
|
* Default is false.
|
|
109
105
|
*/
|
|
110
|
-
function getNextStageType(upwards = false) {
|
|
111
|
-
const backwardsPath =
|
|
112
|
-
const mausoleumHeartKilled =
|
|
113
|
-
const level =
|
|
106
|
+
export function getNextStageType(upwards = false) {
|
|
107
|
+
const backwardsPath = game.GetStateFlag(GameStateFlag.BACKWARDS_PATH);
|
|
108
|
+
const mausoleumHeartKilled = game.GetStateFlag(GameStateFlag.MAUSOLEUM_HEART_KILLED);
|
|
109
|
+
const level = game.GetLevel();
|
|
114
110
|
const stage = level.GetStage();
|
|
115
111
|
const stageType = level.GetStageType();
|
|
116
|
-
const repentanceStage =
|
|
117
|
-
const roomGridIndex =
|
|
112
|
+
const repentanceStage = onRepentanceStage();
|
|
113
|
+
const roomGridIndex = getRoomGridIndex();
|
|
118
114
|
const nextStage = getNextStage();
|
|
119
115
|
// First, handle the special case of being on the backwards path.
|
|
120
116
|
if (backwardsPath) {
|
|
121
|
-
return
|
|
117
|
+
return calculateStageType(nextStage);
|
|
122
118
|
}
|
|
123
119
|
// Second, handle the special case of being in a specific off-grid room.
|
|
124
120
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
125
|
-
if (roomGridIndex ===
|
|
126
|
-
return
|
|
121
|
+
if (roomGridIndex === GridRoom.SECRET_EXIT) {
|
|
122
|
+
return calculateStageTypeRepentance(nextStage);
|
|
127
123
|
}
|
|
128
124
|
if (repentanceStage
|
|
129
|
-
&& (stage ===
|
|
130
|
-
|| stage ===
|
|
131
|
-
|| stage ===
|
|
132
|
-
|| stage ===
|
|
125
|
+
&& (stage === LevelStage.BASEMENT_1 // 1
|
|
126
|
+
|| stage === LevelStage.CAVES_1 // 3
|
|
127
|
+
|| stage === LevelStage.DEPTHS_1 // 5
|
|
128
|
+
|| stage === LevelStage.WOMB_1) // 7
|
|
133
129
|
) {
|
|
134
|
-
return
|
|
130
|
+
return calculateStageTypeRepentance(nextStage);
|
|
135
131
|
}
|
|
136
132
|
if (repentanceStage
|
|
137
133
|
&& mausoleumHeartKilled
|
|
138
|
-
&& stage ===
|
|
139
|
-
return
|
|
134
|
+
&& stage === LevelStage.DEPTHS_2) {
|
|
135
|
+
return calculateStageTypeRepentance(nextStage);
|
|
140
136
|
}
|
|
141
137
|
// 9
|
|
142
|
-
if (nextStage ===
|
|
138
|
+
if (nextStage === LevelStage.BLUE_WOMB) {
|
|
143
139
|
// Blue Womb does not have any alternate floors.
|
|
144
|
-
return
|
|
140
|
+
return StageType.ORIGINAL;
|
|
145
141
|
}
|
|
146
142
|
// 10
|
|
147
|
-
if (nextStage ===
|
|
143
|
+
if (nextStage === LevelStage.SHEOL_CATHEDRAL) {
|
|
148
144
|
if (upwards) {
|
|
149
145
|
// Go to Cathedral (10.1).
|
|
150
|
-
return
|
|
146
|
+
return StageType.WRATH_OF_THE_LAMB;
|
|
151
147
|
}
|
|
152
148
|
// Go to Sheol (10.0).
|
|
153
|
-
return
|
|
149
|
+
return StageType.ORIGINAL;
|
|
154
150
|
}
|
|
155
151
|
// 11
|
|
156
|
-
if (nextStage ===
|
|
157
|
-
if (stageType ===
|
|
152
|
+
if (nextStage === LevelStage.DARK_ROOM_CHEST) {
|
|
153
|
+
if (stageType === StageType.ORIGINAL) {
|
|
158
154
|
// Sheol (10.0) goes to the Dark Room (11.0).
|
|
159
|
-
return
|
|
155
|
+
return StageType.ORIGINAL;
|
|
160
156
|
}
|
|
161
157
|
// Cathedral (10.1) goes to The Chest (11.1).
|
|
162
|
-
return
|
|
158
|
+
return StageType.WRATH_OF_THE_LAMB;
|
|
163
159
|
}
|
|
164
160
|
// 12
|
|
165
|
-
if (nextStage ===
|
|
161
|
+
if (nextStage === LevelStage.VOID) {
|
|
166
162
|
// The Void does not have any alternate floors.
|
|
167
|
-
return
|
|
163
|
+
return StageType.ORIGINAL;
|
|
168
164
|
}
|
|
169
165
|
// 13
|
|
170
|
-
if (nextStage ===
|
|
166
|
+
if (nextStage === LevelStage.HOME) {
|
|
171
167
|
// Home does not have any alternate floors.
|
|
172
|
-
return
|
|
168
|
+
return StageType.ORIGINAL;
|
|
173
169
|
}
|
|
174
|
-
return
|
|
170
|
+
return calculateStageType(nextStage);
|
|
175
171
|
}
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultMapGetNPC = defaultMapGetNPC;
|
|
4
|
-
exports.defaultMapSetNPC = defaultMapSetNPC;
|
|
5
|
-
exports.mapDeleteNPC = mapDeleteNPC;
|
|
6
|
-
exports.mapGetNPC = mapGetNPC;
|
|
7
|
-
exports.mapHasNPC = mapHasNPC;
|
|
8
|
-
exports.mapSetNPC = mapSetNPC;
|
|
9
|
-
exports.setAddNPC = setAddNPC;
|
|
10
|
-
exports.setDeleteNPC = setDeleteNPC;
|
|
11
|
-
exports.setHasNPC = setHasNPC;
|
|
12
1
|
/**
|
|
13
2
|
* Helper function to make using default maps with an index of `PtrHash` easier. Use this instead of
|
|
14
3
|
* the `DefaultMap.getAndSetDefault` method if you have a default map of this type.
|
|
@@ -33,7 +22,7 @@ exports.setHasNPC = setHasNPC;
|
|
|
33
22
|
* map like this, because the scope of `PtrHash` is per room and Dark Esau is persistent between
|
|
34
23
|
* rooms.)
|
|
35
24
|
*/
|
|
36
|
-
function defaultMapGetNPC(map, npc, ...extraArgs) {
|
|
25
|
+
export function defaultMapGetNPC(map, npc, ...extraArgs) {
|
|
37
26
|
const ptrHash = GetPtrHash(npc);
|
|
38
27
|
return map.getAndSetDefault(ptrHash, ...extraArgs);
|
|
39
28
|
}
|
|
@@ -44,7 +33,7 @@ function defaultMapGetNPC(map, npc, ...extraArgs) {
|
|
|
44
33
|
* Since `Map` and `DefaultMap` set values in the same way, this function is simply an alias for the
|
|
45
34
|
* `mapSetNPC` helper function.
|
|
46
35
|
*/
|
|
47
|
-
function defaultMapSetNPC(
|
|
36
|
+
export function defaultMapSetNPC(
|
|
48
37
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
49
38
|
map, npc, value) {
|
|
50
39
|
mapSetNPC(map, npc, value);
|
|
@@ -53,7 +42,7 @@ map, npc, value) {
|
|
|
53
42
|
* Helper function to make using maps with an type of `PtrHash` easier. Use this instead of the
|
|
54
43
|
* `Map.delete` method if you have a set of this type.
|
|
55
44
|
*/
|
|
56
|
-
function mapDeleteNPC(
|
|
45
|
+
export function mapDeleteNPC(
|
|
57
46
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
58
47
|
map, npc) {
|
|
59
48
|
const ptrHash = GetPtrHash(npc);
|
|
@@ -79,7 +68,7 @@ map, npc) {
|
|
|
79
68
|
* }
|
|
80
69
|
* ```
|
|
81
70
|
*/
|
|
82
|
-
function mapGetNPC(map, npc) {
|
|
71
|
+
export function mapGetNPC(map, npc) {
|
|
83
72
|
const ptrHash = GetPtrHash(npc);
|
|
84
73
|
return map.get(ptrHash);
|
|
85
74
|
}
|
|
@@ -87,7 +76,7 @@ function mapGetNPC(map, npc) {
|
|
|
87
76
|
* Helper function to make using maps with an index of `PtrHash` easier. Use this instead of the
|
|
88
77
|
* `Map.has` method if you have a map of this type.
|
|
89
78
|
*/
|
|
90
|
-
function mapHasNPC(map, npc) {
|
|
79
|
+
export function mapHasNPC(map, npc) {
|
|
91
80
|
const ptrHash = GetPtrHash(npc);
|
|
92
81
|
return map.has(ptrHash);
|
|
93
82
|
}
|
|
@@ -111,7 +100,7 @@ function mapHasNPC(map, npc) {
|
|
|
111
100
|
* }
|
|
112
101
|
* ```
|
|
113
102
|
*/
|
|
114
|
-
function mapSetNPC(
|
|
103
|
+
export function mapSetNPC(
|
|
115
104
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
116
105
|
map, npc, value) {
|
|
117
106
|
const ptrHash = GetPtrHash(npc);
|
|
@@ -122,7 +111,7 @@ map, npc, value) {
|
|
|
122
111
|
* `Set.add` method if you have a set of this type.
|
|
123
112
|
*/
|
|
124
113
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
125
|
-
function setAddNPC(set, npc) {
|
|
114
|
+
export function setAddNPC(set, npc) {
|
|
126
115
|
const ptrHash = GetPtrHash(npc);
|
|
127
116
|
set.add(ptrHash);
|
|
128
117
|
}
|
|
@@ -131,7 +120,7 @@ function setAddNPC(set, npc) {
|
|
|
131
120
|
* `Set.delete` method if you have a set of this type.
|
|
132
121
|
*/
|
|
133
122
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
134
|
-
function setDeleteNPC(set, npc) {
|
|
123
|
+
export function setDeleteNPC(set, npc) {
|
|
135
124
|
const ptrHash = GetPtrHash(npc);
|
|
136
125
|
return set.delete(ptrHash);
|
|
137
126
|
}
|
|
@@ -139,7 +128,7 @@ function setDeleteNPC(set, npc) {
|
|
|
139
128
|
* Helper function to make using sets with an type of `PtrHash` easier. Use this instead of the
|
|
140
129
|
* `Set.has` method if you have a set of this type.
|
|
141
130
|
*/
|
|
142
|
-
function setHasNPC(set, npc) {
|
|
131
|
+
export function setHasNPC(set, npc) {
|
|
143
132
|
const ptrHash = GetPtrHash(npc);
|
|
144
133
|
return set.has(ptrHash);
|
|
145
134
|
}
|