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
package/dist/functions/run.js
CHANGED
|
@@ -1,21 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.onVictoryLap = onVictoryLap;
|
|
8
|
-
exports.restart = restart;
|
|
9
|
-
exports.setRunSeed = setRunSeed;
|
|
10
|
-
exports.setUnseeded = setUnseeded;
|
|
11
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
12
|
-
const cachedEnumValues_1 = require("../cachedEnumValues");
|
|
13
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
14
|
-
const characters_1 = require("./characters");
|
|
15
|
-
const log_1 = require("./log");
|
|
16
|
-
const types_1 = require("./types");
|
|
1
|
+
import { Challenge, PlayerType, SeedEffect, } from "isaac-typescript-definitions";
|
|
2
|
+
import { SEED_EFFECTS } from "../cachedEnumValues";
|
|
3
|
+
import { game } from "../core/cachedClasses";
|
|
4
|
+
import { getCharacterName } from "./characters";
|
|
5
|
+
import { log } from "./log";
|
|
6
|
+
import { isString } from "./types";
|
|
17
7
|
/** Alias for the `anySeedEffectEnabled` function. */
|
|
18
|
-
function anyEasterEggEnabled(exceptions) {
|
|
8
|
+
export function anyEasterEggEnabled(exceptions) {
|
|
19
9
|
return anySeedEffectEnabled(exceptions);
|
|
20
10
|
}
|
|
21
11
|
/**
|
|
@@ -23,21 +13,21 @@ function anyEasterEggEnabled(exceptions) {
|
|
|
23
13
|
*
|
|
24
14
|
* @param exceptions Optional. An array of seed effects to ignore.
|
|
25
15
|
*/
|
|
26
|
-
function anySeedEffectEnabled(exceptions) {
|
|
27
|
-
const seeds =
|
|
16
|
+
export function anySeedEffectEnabled(exceptions) {
|
|
17
|
+
const seeds = game.GetSeeds();
|
|
28
18
|
if (exceptions === undefined) {
|
|
29
19
|
const numSeedEffects = seeds.CountSeedEffects();
|
|
30
20
|
return numSeedEffects > 0;
|
|
31
21
|
}
|
|
32
22
|
const exceptionsSet = new Set(exceptions);
|
|
33
|
-
return
|
|
23
|
+
return SEED_EFFECTS.some((seedEffect) => seeds.HasSeedEffect(seedEffect) && !exceptionsSet.has(seedEffect));
|
|
34
24
|
}
|
|
35
25
|
/**
|
|
36
26
|
* Helper function to get the seed effects (i.e. Easter Eggs) that are enabled for the current run.
|
|
37
27
|
*/
|
|
38
|
-
function getSeedEffects() {
|
|
39
|
-
const seeds =
|
|
40
|
-
return
|
|
28
|
+
export function getSeedEffects() {
|
|
29
|
+
const seeds = game.GetSeeds();
|
|
30
|
+
return SEED_EFFECTS.filter((seedEffect) => seedEffect !== SeedEffect.NORMAL && seeds.HasSeedEffect(seedEffect));
|
|
41
31
|
}
|
|
42
32
|
/**
|
|
43
33
|
* Helper function to check whether the player is playing on a set seed (i.e. that they entered in a
|
|
@@ -47,18 +37,18 @@ function getSeedEffects() {
|
|
|
47
37
|
* Under the hood, this checks if the current challenge is `Challenge.NULL` and the
|
|
48
38
|
* `Seeds.IsCustomRun` method.
|
|
49
39
|
*/
|
|
50
|
-
function onSetSeed() {
|
|
51
|
-
const seeds =
|
|
40
|
+
export function onSetSeed() {
|
|
41
|
+
const seeds = game.GetSeeds();
|
|
52
42
|
const customRun = seeds.IsCustomRun();
|
|
53
43
|
const challenge = Isaac.GetChallenge();
|
|
54
|
-
return challenge ===
|
|
44
|
+
return challenge === Challenge.NULL && customRun;
|
|
55
45
|
}
|
|
56
46
|
/**
|
|
57
47
|
* Helper function to check whether the player is on a Victory Lap (i.e. they answered "yes" to the
|
|
58
48
|
* popup that happens after defeating The Lamb).
|
|
59
49
|
*/
|
|
60
|
-
function onVictoryLap() {
|
|
61
|
-
const numVictoryLaps =
|
|
50
|
+
export function onVictoryLap() {
|
|
51
|
+
const numVictoryLaps = game.GetVictoryLap();
|
|
62
52
|
return numVictoryLaps > 0;
|
|
63
53
|
}
|
|
64
54
|
/**
|
|
@@ -68,19 +58,19 @@ function onVictoryLap() {
|
|
|
68
58
|
*
|
|
69
59
|
* You can optionally specify a `PlayerType` to restart the game as that character.
|
|
70
60
|
*/
|
|
71
|
-
function restart(character) {
|
|
61
|
+
export function restart(character) {
|
|
72
62
|
if (character === undefined) {
|
|
73
63
|
const command = "restart";
|
|
74
|
-
|
|
64
|
+
log(`Restarting the run with a console command of: ${command}`);
|
|
75
65
|
Isaac.ExecuteCommand(command);
|
|
76
66
|
return;
|
|
77
67
|
}
|
|
78
|
-
if (character <
|
|
68
|
+
if (character < PlayerType.ISAAC) {
|
|
79
69
|
error(`Restarting as a character of ${character} would crash the game.`);
|
|
80
70
|
}
|
|
81
71
|
const command = `restart ${character}`;
|
|
82
|
-
const characterName =
|
|
83
|
-
|
|
72
|
+
const characterName = getCharacterName(character);
|
|
73
|
+
log(`Restarting the run as ${characterName} (${character}) with a console command of: ${command}`);
|
|
84
74
|
Isaac.ExecuteCommand(command);
|
|
85
75
|
}
|
|
86
76
|
/**
|
|
@@ -91,12 +81,12 @@ function restart(character) {
|
|
|
91
81
|
* @param startSeedOrStartSeedString Either the numerical start seed (e.g. 268365970) or the start
|
|
92
82
|
* seed string (e.g. "AAJ2 8V9C").
|
|
93
83
|
*/
|
|
94
|
-
function setRunSeed(startSeedOrStartSeedString) {
|
|
95
|
-
const startSeedString =
|
|
84
|
+
export function setRunSeed(startSeedOrStartSeedString) {
|
|
85
|
+
const startSeedString = isString(startSeedOrStartSeedString)
|
|
96
86
|
? startSeedOrStartSeedString
|
|
97
87
|
: Seeds.Seed2String(startSeedOrStartSeedString);
|
|
98
88
|
const command = `seed ${startSeedString}`;
|
|
99
|
-
|
|
89
|
+
log(`Restarting the run to set a seed with a console command of: ${command}`);
|
|
100
90
|
Isaac.ExecuteCommand(command);
|
|
101
91
|
}
|
|
102
92
|
/**
|
|
@@ -108,13 +98,13 @@ function setRunSeed(startSeedOrStartSeedString) {
|
|
|
108
98
|
* Under the hood, this function calls the `Seeds.Reset` method and the
|
|
109
99
|
* `Seeds.Restart(Challenge.NULL)` method.
|
|
110
100
|
*/
|
|
111
|
-
function setUnseeded() {
|
|
112
|
-
const seeds =
|
|
101
|
+
export function setUnseeded() {
|
|
102
|
+
const seeds = game.GetSeeds();
|
|
113
103
|
// Invoking the `Seeds.Reset` method will cause the start seed to be set to 0. Subsequently, the
|
|
114
104
|
// `Seeds.GetStartSeed` method will return 0, and can cause crashes (due to RNG objects not being
|
|
115
105
|
// able to handle a seed of 0). It also causes the log to be spammed with: "[ASSERT] - Error: Game
|
|
116
106
|
// Start Seed was not set." Thus, we must immediately re-initialize the game start seed by using
|
|
117
107
|
// the `Seeds.Restart` method.
|
|
118
108
|
seeds.Reset();
|
|
119
|
-
seeds.Restart(
|
|
109
|
+
seeds.Restart(Challenge.NULL);
|
|
120
110
|
}
|
package/dist/functions/seeds.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getStartSeedString = getStartSeedString;
|
|
4
|
-
exports.nextSeed = nextSeed;
|
|
5
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
6
|
-
const rng_1 = require("./rng");
|
|
1
|
+
import { game } from "../core/cachedClasses";
|
|
2
|
+
import { newRNG } from "./rng";
|
|
7
3
|
/** Alias for the `Seeds.GetStartSeedString` method. */
|
|
8
|
-
function getStartSeedString() {
|
|
9
|
-
const seeds =
|
|
4
|
+
export function getStartSeedString() {
|
|
5
|
+
const seeds = game.GetSeeds();
|
|
10
6
|
return seeds.GetStartSeedString();
|
|
11
7
|
}
|
|
12
8
|
/**
|
|
@@ -14,8 +10,8 @@ function getStartSeedString() {
|
|
|
14
10
|
*
|
|
15
11
|
* This function is useful when you are working with seed values directly over RNG objects.
|
|
16
12
|
*/
|
|
17
|
-
function nextSeed(seed) {
|
|
18
|
-
const rng =
|
|
13
|
+
export function nextSeed(seed) {
|
|
14
|
+
const rng = newRNG(seed);
|
|
19
15
|
rng.Next();
|
|
20
16
|
return rng.GetSeed();
|
|
21
17
|
}
|
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.isSerializedIsaacAPIClass = isSerializedIsaacAPIClass;
|
|
7
|
-
exports.serializeIsaacAPIClass = serializeIsaacAPIClass;
|
|
8
|
-
const isaacAPIClassTypeToBrand_1 = require("../objects/isaacAPIClassTypeToBrand");
|
|
9
|
-
const isaacAPIClassTypeToFunctions_1 = require("../objects/isaacAPIClassTypeToFunctions");
|
|
10
|
-
const isaacAPIClass_1 = require("./isaacAPIClass");
|
|
11
|
-
const types_1 = require("./types");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { ISAAC_API_CLASS_TYPE_TO_BRAND } from "../objects/isaacAPIClassTypeToBrand";
|
|
2
|
+
import { ISAAC_API_CLASS_TYPE_TO_FUNCTIONS } from "../objects/isaacAPIClassTypeToFunctions";
|
|
3
|
+
import { getIsaacAPIClassName } from "./isaacAPIClass";
|
|
4
|
+
import { isTable, isUserdata } from "./types";
|
|
5
|
+
import { assertDefined } from "./utils";
|
|
13
6
|
/**
|
|
14
7
|
* Helper function to generically copy an Isaac API class without knowing what specific type of
|
|
15
8
|
* class it is. (This is used by the save data manager.)
|
|
16
9
|
*
|
|
17
10
|
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
18
11
|
*/
|
|
19
|
-
function copyIsaacAPIClass(isaacAPIClass) {
|
|
20
|
-
if (!
|
|
12
|
+
export function copyIsaacAPIClass(isaacAPIClass) {
|
|
13
|
+
if (!isUserdata(isaacAPIClass)) {
|
|
21
14
|
error(`Failed to copy an Isaac API class since the provided object was of type: ${typeof isaacAPIClass}`);
|
|
22
15
|
}
|
|
23
|
-
const isaacAPIClassType =
|
|
24
|
-
|
|
16
|
+
const isaacAPIClassType = getIsaacAPIClassName(isaacAPIClass);
|
|
17
|
+
assertDefined(isaacAPIClassType, "Failed to copy an Isaac API class since it does not have a class type.");
|
|
25
18
|
const copyableIsaacAPIClassType = isaacAPIClassType;
|
|
26
|
-
const functions =
|
|
27
|
-
|
|
19
|
+
const functions = ISAAC_API_CLASS_TYPE_TO_FUNCTIONS[copyableIsaacAPIClassType];
|
|
20
|
+
assertDefined(functions, `Failed to copy an Isaac API class since the associated functions were not found for Isaac API class type: ${copyableIsaacAPIClassType}`);
|
|
28
21
|
return functions.copy(isaacAPIClass);
|
|
29
22
|
}
|
|
30
23
|
/**
|
|
@@ -34,14 +27,14 @@ function copyIsaacAPIClass(isaacAPIClass) {
|
|
|
34
27
|
*
|
|
35
28
|
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
36
29
|
*/
|
|
37
|
-
function deserializeIsaacAPIClass(serializedIsaacAPIClass) {
|
|
38
|
-
if (!
|
|
30
|
+
export function deserializeIsaacAPIClass(serializedIsaacAPIClass) {
|
|
31
|
+
if (!isTable(serializedIsaacAPIClass)) {
|
|
39
32
|
error(`Failed to deserialize an Isaac API class since the provided object was of type: ${typeof serializedIsaacAPIClass}`);
|
|
40
33
|
}
|
|
41
34
|
const copyableIsaacAPIClassType = getSerializedTableType(serializedIsaacAPIClass);
|
|
42
|
-
|
|
43
|
-
const functions =
|
|
44
|
-
|
|
35
|
+
assertDefined(copyableIsaacAPIClassType, "Failed to deserialize an Isaac API class since a valid class type brand was not found.");
|
|
36
|
+
const functions = ISAAC_API_CLASS_TYPE_TO_FUNCTIONS[copyableIsaacAPIClassType];
|
|
37
|
+
assertDefined(functions, `Failed to deserialize an Isaac API class since the associated functions were not found for class type: ${copyableIsaacAPIClassType}`);
|
|
45
38
|
return functions.deserialize(serializedIsaacAPIClass);
|
|
46
39
|
}
|
|
47
40
|
/**
|
|
@@ -50,8 +43,8 @@ function deserializeIsaacAPIClass(serializedIsaacAPIClass) {
|
|
|
50
43
|
*
|
|
51
44
|
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
52
45
|
*/
|
|
53
|
-
function isCopyableIsaacAPIClass(object) {
|
|
54
|
-
const allFunctions = Object.values(
|
|
46
|
+
export function isCopyableIsaacAPIClass(object) {
|
|
47
|
+
const allFunctions = Object.values(ISAAC_API_CLASS_TYPE_TO_FUNCTIONS);
|
|
55
48
|
const isFunctions = allFunctions.map((functions) => functions.is);
|
|
56
49
|
return isFunctions.some((identityFunction) => identityFunction(object));
|
|
57
50
|
}
|
|
@@ -61,8 +54,8 @@ function isCopyableIsaacAPIClass(object) {
|
|
|
61
54
|
*
|
|
62
55
|
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
63
56
|
*/
|
|
64
|
-
function isSerializedIsaacAPIClass(object) {
|
|
65
|
-
const allFunctions = Object.values(
|
|
57
|
+
export function isSerializedIsaacAPIClass(object) {
|
|
58
|
+
const allFunctions = Object.values(ISAAC_API_CLASS_TYPE_TO_FUNCTIONS);
|
|
66
59
|
const isSerializedFunctions = allFunctions.map((functions) => functions.isSerialized);
|
|
67
60
|
return isSerializedFunctions.some((identityFunction) => identityFunction(object));
|
|
68
61
|
}
|
|
@@ -72,15 +65,15 @@ function isSerializedIsaacAPIClass(object) {
|
|
|
72
65
|
*
|
|
73
66
|
* For the list of supported classes, see the `CopyableIsaacAPIClassType` enum.
|
|
74
67
|
*/
|
|
75
|
-
function serializeIsaacAPIClass(isaacAPIClass) {
|
|
76
|
-
if (!
|
|
68
|
+
export function serializeIsaacAPIClass(isaacAPIClass) {
|
|
69
|
+
if (!isUserdata(isaacAPIClass)) {
|
|
77
70
|
error(`Failed to serialize an Isaac API class since the provided object was of type: ${typeof isaacAPIClass}`);
|
|
78
71
|
}
|
|
79
|
-
const isaacAPIClassType =
|
|
80
|
-
|
|
72
|
+
const isaacAPIClassType = getIsaacAPIClassName(isaacAPIClass);
|
|
73
|
+
assertDefined(isaacAPIClassType, "Failed to serialize an Isaac API class since it does not have a class name.");
|
|
81
74
|
const copyableIsaacAPIClassType = isaacAPIClassType;
|
|
82
|
-
const functions =
|
|
83
|
-
|
|
75
|
+
const functions = ISAAC_API_CLASS_TYPE_TO_FUNCTIONS[copyableIsaacAPIClassType];
|
|
76
|
+
assertDefined(functions, `Failed to serialize an Isaac API class since the associated functions were not found for class type: ${copyableIsaacAPIClassType}`);
|
|
84
77
|
return functions.serialize(isaacAPIClass);
|
|
85
78
|
}
|
|
86
79
|
/**
|
|
@@ -88,7 +81,7 @@ function serializeIsaacAPIClass(isaacAPIClass) {
|
|
|
88
81
|
* serialized table for brands.
|
|
89
82
|
*/
|
|
90
83
|
function getSerializedTableType(serializedIsaacAPIClass) {
|
|
91
|
-
for (const [copyableIsaacAPIClassType, serializationBrand] of Object.entries(
|
|
84
|
+
for (const [copyableIsaacAPIClassType, serializationBrand] of Object.entries(ISAAC_API_CLASS_TYPE_TO_BRAND)) {
|
|
92
85
|
if (serializedIsaacAPIClass.has(serializationBrand)) {
|
|
93
86
|
return copyableIsaacAPIClassType;
|
|
94
87
|
}
|
package/dist/functions/set.js
CHANGED
|
@@ -1,30 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.copySet = copySet;
|
|
6
|
-
exports.deleteSetsFromSet = deleteSetsFromSet;
|
|
7
|
-
exports.getRandomSetElement = getRandomSetElement;
|
|
8
|
-
exports.getSetCombinations = getSetCombinations;
|
|
9
|
-
exports.getSortedSetValues = getSortedSetValues;
|
|
10
|
-
exports.objectKeysToReadonlySet = objectKeysToReadonlySet;
|
|
11
|
-
exports.objectKeysToSet = objectKeysToSet;
|
|
12
|
-
exports.objectValuesToReadonlySet = objectValuesToReadonlySet;
|
|
13
|
-
exports.objectValuesToSet = objectValuesToSet;
|
|
14
|
-
exports.setAdd = setAdd;
|
|
15
|
-
exports.setHas = setHas;
|
|
16
|
-
exports.sumSet = sumSet;
|
|
17
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
18
|
-
const array_1 = require("./array");
|
|
19
|
-
const sort_1 = require("./sort");
|
|
20
|
-
const types_1 = require("./types");
|
|
1
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
|
+
import { getArrayCombinations, getRandomArrayElement, sumArray } from "./array";
|
|
3
|
+
import { sortNormal } from "./sort";
|
|
4
|
+
import { isPrimitive } from "./types";
|
|
21
5
|
/**
|
|
22
6
|
* Helper function to add all of the values in one set to another set. The first set passed will be
|
|
23
7
|
* modified in place.
|
|
24
8
|
*
|
|
25
9
|
* This function is variadic, meaning that you can specify N sets to add to the first set.
|
|
26
10
|
*/
|
|
27
|
-
function addSetsToSet(
|
|
11
|
+
export function addSetsToSet(
|
|
28
12
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
29
13
|
mainSet, ...setsToAdd) {
|
|
30
14
|
for (const set of setsToAdd) {
|
|
@@ -38,7 +22,7 @@ mainSet, ...setsToAdd) {
|
|
|
38
22
|
*
|
|
39
23
|
* This function is variadic, meaning that you can specify N sets.
|
|
40
24
|
*/
|
|
41
|
-
function combineSets(...sets) {
|
|
25
|
+
export function combineSets(...sets) {
|
|
42
26
|
const newSet = new Set();
|
|
43
27
|
for (const set of sets) {
|
|
44
28
|
for (const value of set) {
|
|
@@ -48,7 +32,7 @@ function combineSets(...sets) {
|
|
|
48
32
|
return newSet;
|
|
49
33
|
}
|
|
50
34
|
/** Helper function to copy a set. (You can also use a Set constructor to accomplish this task.) */
|
|
51
|
-
function copySet(oldSet) {
|
|
35
|
+
export function copySet(oldSet) {
|
|
52
36
|
return new Set(oldSet);
|
|
53
37
|
}
|
|
54
38
|
/**
|
|
@@ -57,7 +41,7 @@ function copySet(oldSet) {
|
|
|
57
41
|
*
|
|
58
42
|
* This function is variadic, meaning that you can specify N sets to remove from the first set.
|
|
59
43
|
*/
|
|
60
|
-
function deleteSetsFromSet(
|
|
44
|
+
export function deleteSetsFromSet(
|
|
61
45
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
62
46
|
mainSet, ...setsToRemove) {
|
|
63
47
|
for (const set of setsToRemove) {
|
|
@@ -78,9 +62,9 @@ mainSet, ...setsToRemove) {
|
|
|
78
62
|
* a random seed.
|
|
79
63
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
80
64
|
*/
|
|
81
|
-
function getRandomSetElement(set, seedOrRNG, exceptions = []) {
|
|
65
|
+
export function getRandomSetElement(set, seedOrRNG, exceptions = []) {
|
|
82
66
|
const array = getSortedSetValues(set);
|
|
83
|
-
return
|
|
67
|
+
return getRandomArrayElement(array, seedOrRNG, exceptions);
|
|
84
68
|
}
|
|
85
69
|
/**
|
|
86
70
|
* Helper function to get all possible combinations of the given set. This includes the combination
|
|
@@ -101,10 +85,10 @@ function getRandomSetElement(set, seedOrRNG, exceptions = []) {
|
|
|
101
85
|
* @param set The set to get the combinations of.
|
|
102
86
|
* @param includeEmptyArray Whether to include an empty array in the combinations.
|
|
103
87
|
*/
|
|
104
|
-
function getSetCombinations(set, includeEmptyArray) {
|
|
88
|
+
export function getSetCombinations(set, includeEmptyArray) {
|
|
105
89
|
const values = getSortedSetValues(set);
|
|
106
|
-
const combinations =
|
|
107
|
-
return combinations.map((array) => new
|
|
90
|
+
const combinations = getArrayCombinations(values, includeEmptyArray);
|
|
91
|
+
return combinations.map((array) => new ReadonlySet(array));
|
|
108
92
|
}
|
|
109
93
|
/**
|
|
110
94
|
* Helper function to get a sorted array based on the contents of a set.
|
|
@@ -112,17 +96,17 @@ function getSetCombinations(set, includeEmptyArray) {
|
|
|
112
96
|
* Normally, set values are returned in insertion order, so use this function when the ordering of
|
|
113
97
|
* the contents is important.
|
|
114
98
|
*/
|
|
115
|
-
function getSortedSetValues(set) {
|
|
99
|
+
export function getSortedSetValues(set) {
|
|
116
100
|
const values = [...set];
|
|
117
101
|
// Check for problematic types in order to throw a helpful error message.
|
|
118
102
|
const firstElement = values[0];
|
|
119
103
|
if (firstElement !== undefined) {
|
|
120
104
|
const arrayType = type(firstElement);
|
|
121
|
-
if (!
|
|
105
|
+
if (!isPrimitive(arrayType)) {
|
|
122
106
|
error(`Failed to get the sorted set values because the provided set was of type "${arrayType}". Having sets with non-primitive types doesn't make much sense in general, so you might need to rethink what you are doing.`);
|
|
123
107
|
}
|
|
124
108
|
}
|
|
125
|
-
values.sort(
|
|
109
|
+
values.sort(sortNormal);
|
|
126
110
|
return values;
|
|
127
111
|
}
|
|
128
112
|
/**
|
|
@@ -133,7 +117,7 @@ function getSortedSetValues(set) {
|
|
|
133
117
|
*
|
|
134
118
|
* Also see the `objectKeysToSet` function.
|
|
135
119
|
*/
|
|
136
|
-
function objectKeysToReadonlySet(object) {
|
|
120
|
+
export function objectKeysToReadonlySet(object) {
|
|
137
121
|
return objectKeysToSet(object);
|
|
138
122
|
}
|
|
139
123
|
/**
|
|
@@ -144,7 +128,7 @@ function objectKeysToReadonlySet(object) {
|
|
|
144
128
|
*
|
|
145
129
|
* Also see the `objectKeysToReadonlySet` function.
|
|
146
130
|
*/
|
|
147
|
-
function objectKeysToSet(object) {
|
|
131
|
+
export function objectKeysToSet(object) {
|
|
148
132
|
const set = new Set();
|
|
149
133
|
for (const key of Object.keys(object)) {
|
|
150
134
|
set.add(key);
|
|
@@ -159,7 +143,7 @@ function objectKeysToSet(object) {
|
|
|
159
143
|
*
|
|
160
144
|
* Also see the `objectValuesToSet` function.
|
|
161
145
|
*/
|
|
162
|
-
function objectValuesToReadonlySet(object) {
|
|
146
|
+
export function objectValuesToReadonlySet(object) {
|
|
163
147
|
return objectValuesToSet(object);
|
|
164
148
|
}
|
|
165
149
|
/**
|
|
@@ -170,7 +154,7 @@ function objectValuesToReadonlySet(object) {
|
|
|
170
154
|
*
|
|
171
155
|
* Also see the `objectValuesToReadonlySet` function.
|
|
172
156
|
*/
|
|
173
|
-
function objectValuesToSet(object) {
|
|
157
|
+
export function objectValuesToSet(object) {
|
|
174
158
|
const set = new Set();
|
|
175
159
|
for (const key of Object.values(object)) {
|
|
176
160
|
set.add(key);
|
|
@@ -184,7 +168,7 @@ function objectValuesToSet(object) {
|
|
|
184
168
|
* This function is variadic, meaning that you can pass as many things as you want to add.
|
|
185
169
|
*/
|
|
186
170
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
187
|
-
function setAdd(set, ...elements) {
|
|
171
|
+
export function setAdd(set, ...elements) {
|
|
188
172
|
for (const element of elements) {
|
|
189
173
|
set.add(element);
|
|
190
174
|
}
|
|
@@ -196,11 +180,11 @@ function setAdd(set, ...elements) {
|
|
|
196
180
|
* This function is variadic, meaning that you can pass as many things as you want to check for. It
|
|
197
181
|
* will return true if one or more elements are found.
|
|
198
182
|
*/
|
|
199
|
-
function setHas(set, ...elements) {
|
|
183
|
+
export function setHas(set, ...elements) {
|
|
200
184
|
return elements.some((element) => set.has(element));
|
|
201
185
|
}
|
|
202
186
|
/** Helper function to sum every value in a set together. */
|
|
203
|
-
function sumSet(set) {
|
|
187
|
+
export function sumSet(set) {
|
|
204
188
|
const values = [...set];
|
|
205
|
-
return
|
|
189
|
+
return sumArray(values);
|
|
206
190
|
}
|
package/dist/functions/slots.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
isaac_typescript_definitions_1.SlotVariant.GREED_DONATION_MACHINE, // 11
|
|
16
|
-
isaac_typescript_definitions_1.SlotVariant.MOMS_DRESSING_TABLE, // 12
|
|
17
|
-
isaac_typescript_definitions_1.SlotVariant.CRANE_GAME, // 16
|
|
18
|
-
isaac_typescript_definitions_1.SlotVariant.CONFESSIONAL, // 17
|
|
1
|
+
import { SlotVariant } from "isaac-typescript-definitions";
|
|
2
|
+
import { DEFAULT_SLOT_NAME, SLOT_NAMES } from "../objects/slotNames";
|
|
3
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
4
|
+
import { isSlot } from "./entityTypes";
|
|
5
|
+
const SLOT_MACHINE_VARIANTS = new ReadonlySet([
|
|
6
|
+
SlotVariant.SLOT_MACHINE, // 1
|
|
7
|
+
SlotVariant.BLOOD_DONATION_MACHINE, // 2,
|
|
8
|
+
SlotVariant.FORTUNE_TELLING_MACHINE, // 3
|
|
9
|
+
SlotVariant.DONATION_MACHINE, // 8
|
|
10
|
+
SlotVariant.SHOP_RESTOCK_MACHINE, // 10
|
|
11
|
+
SlotVariant.GREED_DONATION_MACHINE, // 11
|
|
12
|
+
SlotVariant.MOMS_DRESSING_TABLE, // 12
|
|
13
|
+
SlotVariant.CRANE_GAME, // 16
|
|
14
|
+
SlotVariant.CONFESSIONAL, // 17
|
|
19
15
|
]);
|
|
20
16
|
/**
|
|
21
17
|
* Helper function to get the name of a slot, as listed in the "entities2.xml" file. Returns
|
|
@@ -26,14 +22,14 @@ const SLOT_MACHINE_VARIANTS = new ReadonlySet_1.ReadonlySet([
|
|
|
26
22
|
* For example, `getSlotName(SlotVariant.BLOOD_DONATION_MACHINE)` would return "Blood Donation
|
|
27
23
|
* Machine".
|
|
28
24
|
*/
|
|
29
|
-
function getSlotName(slotVariant) {
|
|
25
|
+
export function getSlotName(slotVariant) {
|
|
30
26
|
// Handle modded slots.
|
|
31
27
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
32
|
-
return
|
|
28
|
+
return SLOT_NAMES[slotVariant] ?? DEFAULT_SLOT_NAME;
|
|
33
29
|
}
|
|
34
30
|
/** Returns true for the specific variants of `EntityType.SLOT` that are machines. */
|
|
35
|
-
function isSlotMachine(entity) {
|
|
36
|
-
if (!
|
|
31
|
+
export function isSlotMachine(entity) {
|
|
32
|
+
if (!isSlot(entity)) {
|
|
37
33
|
return false;
|
|
38
34
|
}
|
|
39
35
|
return SLOT_MACHINE_VARIANTS.has(entity.Variant);
|
package/dist/functions/sort.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.sortObjectArrayByKey = sortObjectArrayByKey;
|
|
5
|
-
exports.sortTwoDimensionalArray = sortTwoDimensionalArray;
|
|
6
|
-
exports.stableSort = stableSort;
|
|
7
|
-
const types_1 = require("./types");
|
|
8
|
-
function sortNormal(a, b) {
|
|
9
|
-
if (!(0, types_1.isNumber)(a) && !(0, types_1.isString)(a)) {
|
|
1
|
+
import { isNumber, isString, isTable } from "./types";
|
|
2
|
+
export function sortNormal(a, b) {
|
|
3
|
+
if (!isNumber(a) && !isString(a)) {
|
|
10
4
|
error(`Failed to normal sort since the first value was not a number or string and was instead: ${type(a)}`);
|
|
11
5
|
}
|
|
12
|
-
if (!
|
|
6
|
+
if (!isNumber(b) && !isString(b)) {
|
|
13
7
|
error(`Failed to normal sort since the second value was not a number or string and was instead: ${type(b)}`);
|
|
14
8
|
}
|
|
15
9
|
if (a < b) {
|
|
@@ -39,12 +33,12 @@ function sortNormal(a, b) {
|
|
|
39
33
|
* myArray.sort(sortObjectArrayByKey("age"));
|
|
40
34
|
* ```
|
|
41
35
|
*/
|
|
42
|
-
function sortObjectArrayByKey(key) {
|
|
36
|
+
export function sortObjectArrayByKey(key) {
|
|
43
37
|
return (a, b) => {
|
|
44
|
-
if (!
|
|
38
|
+
if (!isTable(a)) {
|
|
45
39
|
error(`Failed to sort an object array by the key of "${key}" since the first element was not a table and was instead: ${type(a)}`);
|
|
46
40
|
}
|
|
47
|
-
if (!
|
|
41
|
+
if (!isTable(b)) {
|
|
48
42
|
error(`Failed to sort an object array by the key of "${key}" since the second element was not a table and was instead: ${type(b)}.`);
|
|
49
43
|
}
|
|
50
44
|
const aValue = a.get(key);
|
|
@@ -68,7 +62,7 @@ function sortObjectArrayByKey(key) {
|
|
|
68
62
|
* From:
|
|
69
63
|
* https://stackoverflow.com/questions/16096872/how-to-sort-2-dimensional-array-by-column-value
|
|
70
64
|
*/
|
|
71
|
-
function sortTwoDimensionalArray(a, b) {
|
|
65
|
+
export function sortTwoDimensionalArray(a, b) {
|
|
72
66
|
const aType = type(a);
|
|
73
67
|
const bType = type(b);
|
|
74
68
|
if (aType !== bType) {
|
|
@@ -105,7 +99,7 @@ function sortTwoDimensionalArray(a, b) {
|
|
|
105
99
|
*
|
|
106
100
|
* Under the hood, this uses the merge sort algorithm.
|
|
107
101
|
*/
|
|
108
|
-
function stableSort(
|
|
102
|
+
export function stableSort(
|
|
109
103
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
110
104
|
array, sortFunc = sortNormal) {
|
|
111
105
|
// Base case: an array of zero or one elements is already sorted
|
package/dist/functions/sound.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const cachedEnumValues_1 = require("../cachedEnumValues");
|
|
6
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
7
|
-
const stageToMusic_1 = require("../objects/stageToMusic");
|
|
8
|
-
const enums_1 = require("./enums");
|
|
1
|
+
import { SOUND_EFFECT_VALUES } from "../cachedEnumValues";
|
|
2
|
+
import { game, sfxManager } from "../core/cachedClasses";
|
|
3
|
+
import { STAGE_TO_MUSIC } from "../objects/stageToMusic";
|
|
4
|
+
import { getEnumValues } from "./enums";
|
|
9
5
|
/**
|
|
10
6
|
* Helper function to get the corresponding music value for a stage and stage type combination.
|
|
11
7
|
*
|
|
@@ -14,11 +10,11 @@ const enums_1 = require("./enums");
|
|
|
14
10
|
* @param stageType Optional. The stage type to get the music for. If not specified, the current
|
|
15
11
|
* stage type will be used.
|
|
16
12
|
*/
|
|
17
|
-
function getMusicForStage(stage, stageType) {
|
|
18
|
-
const level =
|
|
13
|
+
export function getMusicForStage(stage, stageType) {
|
|
14
|
+
const level = game.GetLevel();
|
|
19
15
|
stage ??= level.GetStage();
|
|
20
16
|
stageType ??= level.GetStageType();
|
|
21
|
-
const stageTypeToMusic =
|
|
17
|
+
const stageTypeToMusic = STAGE_TO_MUSIC[stage];
|
|
22
18
|
return stageTypeToMusic[stageType];
|
|
23
19
|
}
|
|
24
20
|
/**
|
|
@@ -28,13 +24,13 @@ function getMusicForStage(stage, stageType) {
|
|
|
28
24
|
* @param soundEffectCustom Optional. The enum that represents all of the custom sound effects for
|
|
29
25
|
* your mod.
|
|
30
26
|
*/
|
|
31
|
-
function stopAllSoundEffects(soundEffectCustom) {
|
|
32
|
-
for (const soundEffect of
|
|
33
|
-
|
|
27
|
+
export function stopAllSoundEffects(soundEffectCustom) {
|
|
28
|
+
for (const soundEffect of SOUND_EFFECT_VALUES) {
|
|
29
|
+
sfxManager.Stop(soundEffect);
|
|
34
30
|
}
|
|
35
31
|
if (soundEffectCustom !== undefined) {
|
|
36
|
-
for (const soundEffect of
|
|
37
|
-
|
|
32
|
+
for (const soundEffect of getEnumValues(soundEffectCustom)) {
|
|
33
|
+
sfxManager.Stop(soundEffect);
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
36
|
}
|