isaacscript-common 87.9.7 → 87.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cachedEnumValues.js +29 -32
- package/dist/callbackClasses.js +142 -289
- package/dist/callbacks.js +147 -183
- package/dist/classes/DefaultMap.js +4 -8
- package/dist/classes/ModFeature.js +21 -25
- package/dist/classes/ModUpgraded.js +43 -47
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
- package/dist/classes/callbacks/InputActionFilter.js +4 -8
- package/dist/classes/callbacks/InputActionPlayer.js +4 -8
- package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
- package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
- package/dist/classes/callbacks/PostBombExploded.js +8 -12
- package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
- package/dist/classes/callbacks/PostBombInitLate.js +6 -10
- package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostBoneSwing.js +7 -11
- package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
- package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
- package/dist/classes/callbacks/PostCustomRevive.js +4 -8
- package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
- package/dist/classes/callbacks/PostDoorRender.js +8 -12
- package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
- package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
- package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
- package/dist/classes/callbacks/PostEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFirstFlip.js +4 -8
- package/dist/classes/callbacks/PostFlip.js +4 -8
- package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
- package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
- package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
- package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
- package/dist/classes/callbacks/PostItemDischarge.js +23 -27
- package/dist/classes/callbacks/PostItemPickup.js +6 -10
- package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
- package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
- package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
- package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
- package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
- package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPickupChanged.js +6 -10
- package/dist/classes/callbacks/PostPickupCollect.js +8 -12
- package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
- package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
- package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
- package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPitRender.js +8 -12
- package/dist/classes/callbacks/PostPitUpdate.js +8 -12
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
- package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
- package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
- package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
- package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPoopRender.js +8 -12
- package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
- package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
- package/dist/classes/callbacks/PostProjectileKill.js +8 -12
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPurchase.js +21 -25
- package/dist/classes/callbacks/PostRockRender.js +8 -12
- package/dist/classes/callbacks/PostRockUpdate.js +8 -12
- package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
- package/dist/classes/callbacks/PostSacrifice.js +12 -16
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
- package/dist/classes/callbacks/PostSlotCollision.js +8 -12
- package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
- package/dist/classes/callbacks/PostSlotInit.js +6 -10
- package/dist/classes/callbacks/PostSlotRender.js +6 -10
- package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
- package/dist/classes/callbacks/PostSpikesRender.js +8 -12
- package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
- package/dist/classes/callbacks/PostTNTRender.js +8 -12
- package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
- package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
- package/dist/classes/callbacks/PostTearInitLate.js +6 -10
- package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
- package/dist/classes/callbacks/PostTearKill.js +8 -12
- package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostTransformation.js +10 -14
- package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
- package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
- package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
- package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreCustomRevive.js +6 -10
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreGetPedestal.js +8 -12
- package/dist/classes/callbacks/PreItemPickup.js +6 -10
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PreNewLevel.js +10 -14
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
- package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
- package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
- package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
- package/dist/classes/features/other/CharacterStats.js +9 -13
- package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
- package/dist/classes/features/other/CustomHotkeys.js +15 -19
- package/dist/classes/features/other/CustomItemPools.js +20 -24
- package/dist/classes/features/other/CustomPickups.js +15 -19
- package/dist/classes/features/other/CustomStages.js +116 -153
- package/dist/classes/features/other/CustomTrapdoors.js +119 -123
- package/dist/classes/features/other/DebugDisplay.js +77 -81
- package/dist/classes/features/other/DeployJSONRoom.js +65 -69
- package/dist/classes/features/other/DisableAllSound.js +14 -18
- package/dist/classes/features/other/DisableInputs.js +24 -28
- package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
- package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
- package/dist/classes/features/other/FadeInRemover.js +9 -13
- package/dist/classes/features/other/FastReset.js +18 -22
- package/dist/classes/features/other/FlyingDetection.js +10 -14
- package/dist/classes/features/other/ForgottenSwitch.js +8 -12
- package/dist/classes/features/other/ItemPoolDetection.js +35 -39
- package/dist/classes/features/other/ModdedElementDetection.js +43 -47
- package/dist/classes/features/other/ModdedElementSets.js +135 -139
- package/dist/classes/features/other/NoSirenSteal.js +7 -11
- package/dist/classes/features/other/Pause.js +48 -52
- package/dist/classes/features/other/PersistentEntities.js +16 -20
- package/dist/classes/features/other/PickupIndexCreation.js +31 -35
- package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
- package/dist/classes/features/other/PonyDetection.js +22 -26
- package/dist/classes/features/other/PressInput.js +10 -14
- package/dist/classes/features/other/PreventChildEntities.js +6 -10
- package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
- package/dist/classes/features/other/RerunDetection.js +11 -15
- package/dist/classes/features/other/RoomClearFrame.js +11 -15
- package/dist/classes/features/other/RoomHistory.js +30 -34
- package/dist/classes/features/other/RunInNFrames.js +24 -28
- package/dist/classes/features/other/RunNextRoom.js +8 -12
- package/dist/classes/features/other/RunNextRun.js +8 -12
- package/dist/classes/features/other/SaveDataManager.js +61 -65
- package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
- package/dist/classes/features/other/StageHistory.js +76 -80
- package/dist/classes/features/other/StartAmbush.js +12 -16
- package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
- package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
- package/dist/classes/features/other/customStages/backdrop.js +68 -71
- package/dist/classes/features/other/customStages/constants.js +7 -10
- package/dist/classes/features/other/customStages/gridEntities.js +23 -30
- package/dist/classes/features/other/customStages/shadows.js +27 -30
- package/dist/classes/features/other/customStages/streakText.js +55 -60
- package/dist/classes/features/other/customStages/utils.js +13 -17
- package/dist/classes/features/other/customStages/v.js +4 -7
- package/dist/classes/features/other/customStages/versusScreen.js +46 -50
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
- package/dist/classes/features/other/debugDisplay/utils.js +6 -10
- package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
- package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
- package/dist/classes/features/other/saveDataManager/constants.js +1 -4
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
- package/dist/classes/private/CustomCallback.js +4 -8
- package/dist/classes/private/Feature.js +1 -5
- package/dist/core/cachedClasses.js +12 -15
- package/dist/core/constants.js +126 -130
- package/dist/core/constantsFirstLast.js +22 -25
- package/dist/core/constantsVanilla.js +25 -28
- package/dist/core/upgradeMod.js +7 -10
- package/dist/decorators.js +6 -10
- package/dist/enums/AmbushType.js +2 -5
- package/dist/enums/CornerType.js +2 -5
- package/dist/enums/HealthType.js +2 -5
- package/dist/enums/ISCFeature.js +2 -5
- package/dist/enums/LadderSubTypeCustom.js +2 -5
- package/dist/enums/ModCallbackCustom.js +2 -5
- package/dist/enums/MysteriousPaperEffect.js +2 -5
- package/dist/enums/PlayerStat.js +2 -5
- package/dist/enums/PocketItemType.js +2 -5
- package/dist/enums/RockAltType.js +2 -5
- package/dist/enums/SaveDataKey.js +2 -5
- package/dist/enums/SerializationType.js +2 -5
- package/dist/enums/SlotDestructionType.js +2 -5
- package/dist/enums/private/GridEntityTypeCustom.js +1 -4
- package/dist/enums/private/SerializationBrand.js +2 -5
- package/dist/enums/private/StageTravelState.js +2 -5
- package/dist/enums/private/TrapdoorAnimation.js +2 -5
- package/dist/enums/private/UIStreakAnimation.js +2 -5
- package/dist/features.js +138 -141
- package/dist/functions/ambush.js +9 -12
- package/dist/functions/array.js +45 -76
- package/dist/functions/arrayLua.js +7 -16
- package/dist/functions/benchmark.js +4 -7
- package/dist/functions/bitSet128.js +19 -26
- package/dist/functions/bitwise.js +14 -23
- package/dist/functions/bombs.js +1 -4
- package/dist/functions/bosses.js +68 -85
- package/dist/functions/cards.js +44 -62
- package/dist/functions/challenges.js +28 -39
- package/dist/functions/characters.js +68 -87
- package/dist/functions/charge.js +41 -52
- package/dist/functions/chargeBar.js +2 -6
- package/dist/functions/collectibleTag.js +9 -13
- package/dist/functions/collectibles.js +133 -172
- package/dist/functions/color.js +29 -38
- package/dist/functions/console.js +4 -8
- package/dist/functions/curses.js +6 -10
- package/dist/functions/debugFunctions.js +7 -14
- package/dist/functions/decorators.js +13 -19
- package/dist/functions/deepCopy.js +96 -99
- package/dist/functions/deepCopyTests.js +56 -59
- package/dist/functions/dimensions.js +10 -14
- package/dist/functions/direction.js +22 -30
- package/dist/functions/doors.js +104 -154
- package/dist/functions/easing.js +30 -62
- package/dist/functions/effects.js +6 -10
- package/dist/functions/emptyRoom.js +30 -34
- package/dist/functions/entities.js +88 -115
- package/dist/functions/entitiesSpecific.js +83 -125
- package/dist/functions/entityTypes.js +3 -6
- package/dist/functions/enums.js +27 -41
- package/dist/functions/external.js +4 -8
- package/dist/functions/familiars.js +17 -25
- package/dist/functions/flag.js +10 -19
- package/dist/functions/frames.js +31 -51
- package/dist/functions/globals.js +26 -66
- package/dist/functions/gridEntities.js +231 -269
- package/dist/functions/gridEntitiesSpecific.js +86 -126
- package/dist/functions/gridIndex.js +8 -11
- package/dist/functions/hash.js +1 -4
- package/dist/functions/hex.js +7 -11
- package/dist/functions/input.js +65 -88
- package/dist/functions/isaacAPIClass.js +28 -53
- package/dist/functions/itemPool.js +39 -48
- package/dist/functions/jsonHelpers.js +5 -42
- package/dist/functions/jsonRoom.js +39 -46
- package/dist/functions/kColor.js +30 -39
- package/dist/functions/language.js +3 -6
- package/dist/functions/level.js +20 -26
- package/dist/functions/levelGrid.js +81 -108
- package/dist/functions/log.js +6 -12
- package/dist/functions/logEntities.js +49 -59
- package/dist/functions/logMisc.js +183 -214
- package/dist/functions/map.js +10 -20
- package/dist/functions/math.js +16 -31
- package/dist/functions/merge.js +48 -51
- package/dist/functions/mergeTests.js +34 -37
- package/dist/functions/minimap.js +34 -46
- package/dist/functions/modFeatures.js +1 -4
- package/dist/functions/newArray.js +5 -8
- package/dist/functions/nextStage.js +63 -67
- package/dist/functions/npcDataStructures.js +9 -20
- package/dist/functions/npcs.js +37 -45
- package/dist/functions/pickupVariants.js +26 -39
- package/dist/functions/pickups.js +43 -59
- package/dist/functions/pickupsSpecific.js +76 -118
- package/dist/functions/pills.js +52 -72
- package/dist/functions/playerCenter.js +13 -16
- package/dist/functions/playerCollectibles.js +59 -79
- package/dist/functions/playerDataStructures.js +18 -29
- package/dist/functions/playerEffects.js +12 -19
- package/dist/functions/playerHealth.js +91 -113
- package/dist/functions/playerIndex.js +22 -33
- package/dist/functions/playerTrinkets.js +31 -43
- package/dist/functions/players.js +87 -126
- package/dist/functions/pocketItems.js +33 -43
- package/dist/functions/positionVelocity.js +23 -32
- package/dist/functions/pressurePlate.js +7 -10
- package/dist/functions/projectiles.js +11 -15
- package/dist/functions/random.js +8 -13
- package/dist/functions/readOnly.js +3 -8
- package/dist/functions/render.js +7 -12
- package/dist/functions/revive.js +38 -45
- package/dist/functions/rng.js +31 -44
- package/dist/functions/rockAlt.js +18 -22
- package/dist/functions/roomData.js +24 -40
- package/dist/functions/roomGrid.js +17 -25
- package/dist/functions/roomShape.js +39 -55
- package/dist/functions/roomShapeWalls.js +67 -71
- package/dist/functions/roomTransition.js +13 -17
- package/dist/functions/rooms.js +181 -244
- package/dist/functions/run.js +29 -39
- package/dist/functions/seeds.js +6 -10
- package/dist/functions/serialization.js +27 -34
- package/dist/functions/set.js +24 -40
- package/dist/functions/slots.js +18 -22
- package/dist/functions/sort.js +9 -15
- package/dist/functions/sound.js +12 -16
- package/dist/functions/spawnCollectible.js +21 -26
- package/dist/functions/sprites.js +16 -24
- package/dist/functions/stage.js +122 -164
- package/dist/functions/stats.js +37 -43
- package/dist/functions/storyBosses.js +36 -40
- package/dist/functions/string.js +19 -33
- package/dist/functions/table.js +21 -31
- package/dist/functions/tears.js +6 -14
- package/dist/functions/transformations.js +35 -42
- package/dist/functions/trinketGive.js +29 -36
- package/dist/functions/trinkets.js +45 -60
- package/dist/functions/tstlClass.js +11 -20
- package/dist/functions/types.js +22 -46
- package/dist/functions/ui.js +25 -40
- package/dist/functions/utils.js +22 -36
- package/dist/functions/vector.js +33 -46
- package/dist/functions/versusScreen.js +12 -18
- package/dist/functions/weighted.js +8 -12
- package/dist/index.js +150 -166
- package/dist/indexLua.js +151 -167
- package/dist/interfaces/ChargeBarSprites.js +1 -2
- package/dist/interfaces/Corner.js +1 -2
- package/dist/interfaces/CustomStageTSConfig.js +1 -2
- package/dist/interfaces/GridEntityCustomData.js +1 -2
- package/dist/interfaces/JSONRoomsFile.js +1 -2
- package/dist/interfaces/PlayerHealth.js +1 -2
- package/dist/interfaces/PlayerStats.js +2 -4
- package/dist/interfaces/PocketItemDescription.js +1 -2
- package/dist/interfaces/RoomDescription.js +1 -2
- package/dist/interfaces/SaveData.js +1 -2
- package/dist/interfaces/StageHistoryEntry.js +1 -2
- package/dist/interfaces/TSTLClassMetatable.js +1 -2
- package/dist/interfaces/TrinketSituation.js +1 -2
- package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
- package/dist/interfaces/private/CustomStage.js +1 -2
- package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
- package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
- package/dist/isaacscript-common.lua +1 -1
- package/dist/maps/PHDPillConversionsMap.js +19 -22
- package/dist/maps/cardNameToTypeMap.js +205 -208
- package/dist/maps/characterNameToTypeMap.js +85 -88
- package/dist/maps/collectibleNameToTypeMap.js +5 -8
- package/dist/maps/defaultPlayerStatMap.js +10 -13
- package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
- package/dist/maps/falsePHDPillConversionsMap.js +33 -36
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
- package/dist/maps/gridEntityXMLMap.js +52 -55
- package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
- package/dist/maps/keyboardToStringMap.js +66 -69
- package/dist/maps/pillNameToEffectMap.js +83 -86
- package/dist/maps/roomNameToTypeMap.js +38 -41
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
- package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
- package/dist/maps/trinketNameToTypeMap.js +5 -8
- package/dist/objects/LRoomShapeToRectangles.js +22 -25
- package/dist/objects/backdropTypeToRockAltType.js +65 -68
- package/dist/objects/batteryNames.js +8 -11
- package/dist/objects/bombNames.js +11 -14
- package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
- package/dist/objects/bossNamePNGFileNames.js +104 -107
- package/dist/objects/bossNames.js +105 -108
- package/dist/objects/bossPortraitPNGFileNames.js +104 -107
- package/dist/objects/cardDescriptions.js +101 -104
- package/dist/objects/cardNames.js +101 -104
- package/dist/objects/challengeBosses.js +49 -52
- package/dist/objects/challengeCharacters.js +49 -52
- package/dist/objects/challengeCollectibleTypes.js +160 -163
- package/dist/objects/challengeNames.js +49 -52
- package/dist/objects/challengeTrinketType.js +48 -51
- package/dist/objects/characterDamageMultipliers.js +44 -47
- package/dist/objects/characterNames.js +44 -47
- package/dist/objects/characterSpritePNGFileNames.js +44 -47
- package/dist/objects/characterStartingCollectibleTypes.js +49 -52
- package/dist/objects/characterStartingTrinketTypes.js +44 -47
- package/dist/objects/chestNames.js +15 -18
- package/dist/objects/coinNames.js +11 -14
- package/dist/objects/coinSubTypeToValue.js +11 -14
- package/dist/objects/collectibleDescriptions.js +725 -728
- package/dist/objects/collectibleNames.js +725 -728
- package/dist/objects/colors.js +1 -4
- package/dist/objects/directionNames.js +7 -10
- package/dist/objects/directionToDegrees.js +7 -10
- package/dist/objects/directionToMoveAction.js +7 -10
- package/dist/objects/directionToShootAction.js +7 -10
- package/dist/objects/directionToVector.js +9 -12
- package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
- package/dist/objects/doorSlotToDirection.js +11 -14
- package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
- package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
- package/dist/objects/heartNames.js +16 -19
- package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
- package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
- package/dist/objects/kColors.js +1 -4
- package/dist/objects/keyNames.js +8 -11
- package/dist/objects/languageNames.js +9 -12
- package/dist/objects/oppositeDoorSlots.js +11 -14
- package/dist/objects/pillEffectClasses.js +53 -56
- package/dist/objects/pillEffectNames.js +53 -56
- package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
- package/dist/objects/pillEffectTypes.js +53 -56
- package/dist/objects/playerNamePNGFileNames.js +44 -47
- package/dist/objects/playerPortraitPNGFileNames.js +44 -47
- package/dist/objects/roomShapeBounds.js +23 -26
- package/dist/objects/roomShapeCorners.js +128 -131
- package/dist/objects/roomShapeLayoutSizes.js +23 -26
- package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
- package/dist/objects/roomShapeToDoorSlots.js +48 -51
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
- package/dist/objects/roomShapeToGridWidth.js +14 -17
- package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
- package/dist/objects/roomShapeVolumes.js +21 -24
- package/dist/objects/roomTypeNames.js +32 -35
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
- package/dist/objects/sackNames.js +6 -9
- package/dist/objects/slotNames.js +21 -24
- package/dist/objects/stageIDNames.js +33 -36
- package/dist/objects/stageToMusic.js +69 -72
- package/dist/objects/stageToStageID.js +90 -93
- package/dist/objects/stageTypeSuffixes.js +8 -11
- package/dist/objects/transformationNames.js +16 -19
- package/dist/objects/trinketDescriptions.js +192 -195
- package/dist/objects/trinketNames.js +192 -195
- package/dist/objects/versusScreenBackgroundColors.js +39 -42
- package/dist/objects/versusScreenDirtSpotColors.js +39 -42
- package/dist/patchErrorFunctions.js +4 -7
- package/dist/serialization.js +6 -9
- package/dist/sets/LRoomShapesSet.js +7 -10
- package/dist/sets/bigRoomShapesSet.js +10 -13
- package/dist/sets/bossSets.js +261 -264
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
- package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
- package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
- package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
- package/dist/sets/consoleCommandsSet.js +2 -5
- package/dist/sets/entitiesWithArmorSet.js +44 -47
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
- package/dist/sets/itemConfigCardTypesForCards.js +7 -10
- package/dist/sets/lostStyleCharactersSet.js +8 -11
- package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
- package/dist/sets/narrowRoomShapesSet.js +7 -10
- package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
- package/dist/sets/redHeartSubTypesSet.js +6 -9
- package/dist/sets/repentanceBossIDsSet.js +26 -29
- package/dist/sets/sinEntityTypesSet.js +10 -13
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
- package/dist/shaderCrashFix.js +4 -7
- package/dist/shouldFire.js +28 -58
- package/dist/types/AddSubtract.js +1 -2
- package/dist/types/AllButFirst.js +1 -2
- package/dist/types/AllButLast.js +1 -2
- package/dist/types/AnyClass.js +1 -2
- package/dist/types/AnyEntity.js +1 -2
- package/dist/types/AnyFunction.js +1 -2
- package/dist/types/AnyGridEntity.js +1 -2
- package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
- package/dist/types/ConversionHeartSubType.js +1 -2
- package/dist/types/Decrement.js +1 -2
- package/dist/types/ERange.js +1 -2
- package/dist/types/EntityID.js +1 -2
- package/dist/types/FunctionTuple.js +1 -2
- package/dist/types/GridEntityID.js +1 -2
- package/dist/types/HasFunction.js +1 -2
- package/dist/types/IRange.js +1 -2
- package/dist/types/Immutable.js +1 -2
- package/dist/types/Increment.js +1 -2
- package/dist/types/LowercaseKeys.js +1 -2
- package/dist/types/NaturalNumbersLessThan.js +1 -2
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
- package/dist/types/ObjectValues.js +1 -2
- package/dist/types/PickingUpItem.js +15 -22
- package/dist/types/PickupIndex.js +1 -2
- package/dist/types/PlayerIndex.js +1 -2
- package/dist/types/PossibleStatType.js +1 -2
- package/dist/types/PublicInterface.js +1 -2
- package/dist/types/ReadonlyMap.js +1 -4
- package/dist/types/ReadonlyRecord.js +1 -2
- package/dist/types/ReadonlySet.js +1 -4
- package/dist/types/StartsWithLowercase.js +1 -2
- package/dist/types/StartsWithUppercase.js +1 -2
- package/dist/types/TSTLClass.js +1 -2
- package/dist/types/Tuple.js +1 -2
- package/dist/types/TupleKeys.js +1 -2
- package/dist/types/TupleToIntersection.js +1 -2
- package/dist/types/TupleToUnion.js +1 -2
- package/dist/types/TupleWithLengthBetween.js +1 -2
- package/dist/types/TupleWithMaxLength.js +1 -2
- package/dist/types/UnionToIntersection.js +1 -2
- package/dist/types/UppercaseKeys.js +1 -2
- package/dist/types/WeightedArray.js +1 -2
- package/dist/types/WidenLiteral.js +1 -2
- package/dist/types/Writable.js +1 -2
- package/dist/types/private/CallbackTuple.js +1 -2
- package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
- package/package.json +3 -3
package/dist/functions/array.js
CHANGED
|
@@ -1,45 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.arrayRemoveIndexInPlace = arrayRemoveIndexInPlace;
|
|
8
|
-
exports.arrayRemoveInPlace = arrayRemoveInPlace;
|
|
9
|
-
exports.arrayToString = arrayToString;
|
|
10
|
-
exports.combineArrays = combineArrays;
|
|
11
|
-
exports.copyArray = copyArray;
|
|
12
|
-
exports.emptyArray = emptyArray;
|
|
13
|
-
exports.filterMap = filterMap;
|
|
14
|
-
exports.getArrayCombinations = getArrayCombinations;
|
|
15
|
-
exports.getArrayDuplicateElements = getArrayDuplicateElements;
|
|
16
|
-
exports.getArrayIndexes = getArrayIndexes;
|
|
17
|
-
exports.getHighestArrayElement = getHighestArrayElement;
|
|
18
|
-
exports.getLowestArrayElement = getLowestArrayElement;
|
|
19
|
-
exports.getRandomArrayElement = getRandomArrayElement;
|
|
20
|
-
exports.getRandomArrayElementAndRemove = getRandomArrayElementAndRemove;
|
|
21
|
-
exports.getRandomArrayIndex = getRandomArrayIndex;
|
|
22
|
-
exports.includes = includes;
|
|
23
|
-
exports.isArray = isArray;
|
|
24
|
-
exports.isArrayContiguous = isArrayContiguous;
|
|
25
|
-
exports.isArrayElementsUnique = isArrayElementsUnique;
|
|
26
|
-
exports.isArrayInArray = isArrayInArray;
|
|
27
|
-
exports.setAllArrayElements = setAllArrayElements;
|
|
28
|
-
exports.shuffleArray = shuffleArray;
|
|
29
|
-
exports.shuffleArrayInPlace = shuffleArrayInPlace;
|
|
30
|
-
exports.sumArray = sumArray;
|
|
31
|
-
exports.swapArrayElements = swapArrayElements;
|
|
32
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
33
|
-
const random_1 = require("./random");
|
|
34
|
-
const rng_1 = require("./rng");
|
|
35
|
-
const sort_1 = require("./sort");
|
|
36
|
-
const types_1 = require("./types");
|
|
37
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
2
|
+
import { getRandomInt } from "./random";
|
|
3
|
+
import { isRNG, newRNG } from "./rng";
|
|
4
|
+
import { sortNormal } from "./sort";
|
|
5
|
+
import { isNumber, isTable } from "./types";
|
|
6
|
+
import { assertDefined, eRange } from "./utils";
|
|
38
7
|
/**
|
|
39
8
|
* Helper function for determining if two arrays contain the exact same elements. Note that this
|
|
40
9
|
* only performs a shallow comparison.
|
|
41
10
|
*/
|
|
42
|
-
function arrayEquals(array1, array2) {
|
|
11
|
+
export function arrayEquals(array1, array2) {
|
|
43
12
|
if (array1.length !== array2.length) {
|
|
44
13
|
return false;
|
|
45
14
|
}
|
|
@@ -57,10 +26,10 @@ function arrayEquals(array1, array2) {
|
|
|
57
26
|
*
|
|
58
27
|
* This function is variadic, meaning that you can specify N arguments to remove N elements.
|
|
59
28
|
*/
|
|
60
|
-
function arrayRemove(originalArray, ...elementsToRemove
|
|
29
|
+
export function arrayRemove(originalArray, ...elementsToRemove
|
|
61
30
|
// eslint-disable-next-line complete/no-mutable-return
|
|
62
31
|
) {
|
|
63
|
-
const elementsToRemoveSet = new
|
|
32
|
+
const elementsToRemoveSet = new ReadonlySet(elementsToRemove);
|
|
64
33
|
const array = [];
|
|
65
34
|
for (const element of originalArray) {
|
|
66
35
|
if (!elementsToRemoveSet.has(element)) {
|
|
@@ -81,7 +50,7 @@ function arrayRemove(originalArray, ...elementsToRemove
|
|
|
81
50
|
*
|
|
82
51
|
* @returns True if one or more elements were removed, false otherwise.
|
|
83
52
|
*/
|
|
84
|
-
function arrayRemoveAllInPlace(
|
|
53
|
+
export function arrayRemoveAllInPlace(
|
|
85
54
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
86
55
|
array, ...elementsToRemove) {
|
|
87
56
|
let removedOneOrMoreElements = false;
|
|
@@ -104,10 +73,10 @@ array, ...elementsToRemove) {
|
|
|
104
73
|
*
|
|
105
74
|
* This function is variadic, meaning that you can specify N arguments to remove N elements.
|
|
106
75
|
*/
|
|
107
|
-
function arrayRemoveIndex(originalArray, ...indexesToRemove
|
|
76
|
+
export function arrayRemoveIndex(originalArray, ...indexesToRemove
|
|
108
77
|
// eslint-disable-next-line complete/no-mutable-return
|
|
109
78
|
) {
|
|
110
|
-
const indexesToRemoveSet = new
|
|
79
|
+
const indexesToRemoveSet = new ReadonlySet(indexesToRemove);
|
|
111
80
|
const array = [];
|
|
112
81
|
for (const [i, element] of originalArray.entries()) {
|
|
113
82
|
if (!indexesToRemoveSet.has(i)) {
|
|
@@ -124,7 +93,7 @@ function arrayRemoveIndex(originalArray, ...indexesToRemove
|
|
|
124
93
|
*
|
|
125
94
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
126
95
|
*/
|
|
127
|
-
function arrayRemoveIndexInPlace(
|
|
96
|
+
export function arrayRemoveIndexInPlace(
|
|
128
97
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
129
98
|
array, ...indexesToRemove
|
|
130
99
|
// eslint-disable-next-line complete/no-mutable-return
|
|
@@ -133,7 +102,7 @@ array, ...indexesToRemove
|
|
|
133
102
|
if (legalIndexes.length === 0) {
|
|
134
103
|
return [];
|
|
135
104
|
}
|
|
136
|
-
const legalIndexesSet = new
|
|
105
|
+
const legalIndexesSet = new ReadonlySet(legalIndexes);
|
|
137
106
|
const removedElements = [];
|
|
138
107
|
for (let i = array.length - 1; i >= 0; i--) {
|
|
139
108
|
if (!legalIndexesSet.has(i)) {
|
|
@@ -156,7 +125,7 @@ array, ...indexesToRemove
|
|
|
156
125
|
*
|
|
157
126
|
* @returns The removed elements. This will be an empty array if no elements were removed.
|
|
158
127
|
*/
|
|
159
|
-
function arrayRemoveInPlace(
|
|
128
|
+
export function arrayRemoveInPlace(
|
|
160
129
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
161
130
|
array, ...elementsToRemove
|
|
162
131
|
// eslint-disable-next-line complete/no-mutable-return
|
|
@@ -171,7 +140,7 @@ array, ...elementsToRemove
|
|
|
171
140
|
}
|
|
172
141
|
return removedElements;
|
|
173
142
|
}
|
|
174
|
-
function arrayToString(array) {
|
|
143
|
+
export function arrayToString(array) {
|
|
175
144
|
if (array.length === 0) {
|
|
176
145
|
return "[]";
|
|
177
146
|
}
|
|
@@ -187,7 +156,7 @@ function arrayToString(array) {
|
|
|
187
156
|
* that this will only perform a shallow copy of the array elements.
|
|
188
157
|
*/
|
|
189
158
|
// eslint-disable-next-line complete/no-mutable-return
|
|
190
|
-
function combineArrays(...arrays) {
|
|
159
|
+
export function combineArrays(...arrays) {
|
|
191
160
|
const elements = [];
|
|
192
161
|
for (const array of arrays) {
|
|
193
162
|
for (const element of array) {
|
|
@@ -204,7 +173,7 @@ function combineArrays(...arrays) {
|
|
|
204
173
|
* entire array will be copied.
|
|
205
174
|
*/
|
|
206
175
|
// eslint-disable-next-line complete/no-mutable-return
|
|
207
|
-
function copyArray(oldArray, numElements) {
|
|
176
|
+
export function copyArray(oldArray, numElements) {
|
|
208
177
|
// Using the spread operator was benchmarked to be faster than manually creating an array using
|
|
209
178
|
// the below algorithm.
|
|
210
179
|
if (numElements === undefined) {
|
|
@@ -219,7 +188,7 @@ function copyArray(oldArray, numElements) {
|
|
|
219
188
|
}
|
|
220
189
|
/** Helper function to remove all of the elements in an array in-place. */
|
|
221
190
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
222
|
-
function emptyArray(array) {
|
|
191
|
+
export function emptyArray(array) {
|
|
223
192
|
array.length = 0;
|
|
224
193
|
}
|
|
225
194
|
/**
|
|
@@ -233,7 +202,7 @@ function emptyArray(array) {
|
|
|
233
202
|
* This is named `filterMap` after the Rust function:
|
|
234
203
|
* https://doc.rust-lang.org/std/iter/struct.FilterMap.html
|
|
235
204
|
*/
|
|
236
|
-
function filterMap(array, func) {
|
|
205
|
+
export function filterMap(array, func) {
|
|
237
206
|
const filteredArray = [];
|
|
238
207
|
for (const element of array) {
|
|
239
208
|
const newElement = func(element);
|
|
@@ -267,7 +236,7 @@ function filterMap(array, func) {
|
|
|
267
236
|
* @param max Optional. The maximum number of elements to include in each combination. Default is
|
|
268
237
|
* the length of the array.
|
|
269
238
|
*/
|
|
270
|
-
function getArrayCombinations(array, includeEmptyArray, min, max) {
|
|
239
|
+
export function getArrayCombinations(array, includeEmptyArray, min, max) {
|
|
271
240
|
if (min === undefined || min <= 0) {
|
|
272
241
|
min = 1;
|
|
273
242
|
}
|
|
@@ -292,7 +261,7 @@ function getArrayCombinations(array, includeEmptyArray, min, max) {
|
|
|
292
261
|
* Helper function to get the duplicate elements in an array. Only one element for each value will
|
|
293
262
|
* be returned. The elements will be sorted before they are returned.
|
|
294
263
|
*/
|
|
295
|
-
function getArrayDuplicateElements(array) {
|
|
264
|
+
export function getArrayDuplicateElements(array) {
|
|
296
265
|
const duplicateElements = new Set();
|
|
297
266
|
const set = new Set();
|
|
298
267
|
for (const element of array) {
|
|
@@ -302,7 +271,7 @@ function getArrayDuplicateElements(array) {
|
|
|
302
271
|
set.add(element);
|
|
303
272
|
}
|
|
304
273
|
const values = [...duplicateElements];
|
|
305
|
-
return values.toSorted(
|
|
274
|
+
return values.toSorted(sortNormal);
|
|
306
275
|
}
|
|
307
276
|
/**
|
|
308
277
|
* Helper function to get an array containing the indexes of an array.
|
|
@@ -313,14 +282,14 @@ function getArrayDuplicateElements(array) {
|
|
|
313
282
|
* due to implementation details of TypeScriptToLua, this results in an array of 1 through N
|
|
314
283
|
* (instead of an array of 0 through N -1).
|
|
315
284
|
*/
|
|
316
|
-
function getArrayIndexes(array) {
|
|
317
|
-
return
|
|
285
|
+
export function getArrayIndexes(array) {
|
|
286
|
+
return eRange(array.length);
|
|
318
287
|
}
|
|
319
288
|
/**
|
|
320
289
|
* Helper function to get the highest value in an array. Returns undefined if there were no elements
|
|
321
290
|
* in the array.
|
|
322
291
|
*/
|
|
323
|
-
function getHighestArrayElement(array) {
|
|
292
|
+
export function getHighestArrayElement(array) {
|
|
324
293
|
if (array.length === 0) {
|
|
325
294
|
return undefined;
|
|
326
295
|
}
|
|
@@ -336,7 +305,7 @@ function getHighestArrayElement(array) {
|
|
|
336
305
|
* Helper function to get the lowest value in an array. Returns undefined if there were no elements
|
|
337
306
|
* in the array.
|
|
338
307
|
*/
|
|
339
|
-
function getLowestArrayElement(array) {
|
|
308
|
+
export function getLowestArrayElement(array) {
|
|
340
309
|
if (array.length === 0) {
|
|
341
310
|
return undefined;
|
|
342
311
|
}
|
|
@@ -360,14 +329,14 @@ function getLowestArrayElement(array) {
|
|
|
360
329
|
* a random seed.
|
|
361
330
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
362
331
|
*/
|
|
363
|
-
function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
|
|
332
|
+
export function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
|
|
364
333
|
if (array.length === 0) {
|
|
365
334
|
error("Failed to get a random array element since the provided array is empty.");
|
|
366
335
|
}
|
|
367
336
|
const arrayToUse = exceptions.length > 0 ? arrayRemove(array, ...exceptions) : array;
|
|
368
337
|
const randomIndex = getRandomArrayIndex(arrayToUse, seedOrRNG);
|
|
369
338
|
const randomElement = arrayToUse[randomIndex];
|
|
370
|
-
|
|
339
|
+
assertDefined(randomElement, `Failed to get a random array element since the random index of ${randomIndex} was not valid.`);
|
|
371
340
|
return randomElement;
|
|
372
341
|
}
|
|
373
342
|
/**
|
|
@@ -383,7 +352,7 @@ function getRandomArrayElement(array, seedOrRNG, exceptions = []) {
|
|
|
383
352
|
* a random seed.
|
|
384
353
|
* @param exceptions Optional. An array of elements to skip over if selected.
|
|
385
354
|
*/
|
|
386
|
-
function getRandomArrayElementAndRemove(
|
|
355
|
+
export function getRandomArrayElementAndRemove(
|
|
387
356
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
388
357
|
array, seedOrRNG, exceptions = []) {
|
|
389
358
|
const randomArrayElement = getRandomArrayElement(array, seedOrRNG, exceptions);
|
|
@@ -403,11 +372,11 @@ array, seedOrRNG, exceptions = []) {
|
|
|
403
372
|
* @param exceptions Optional. An array of indexes that will be skipped over when getting the random
|
|
404
373
|
* index. Default is an empty array.
|
|
405
374
|
*/
|
|
406
|
-
function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
|
|
375
|
+
export function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
|
|
407
376
|
if (array.length === 0) {
|
|
408
377
|
error("Failed to get a random array index since the provided array is empty.");
|
|
409
378
|
}
|
|
410
|
-
return
|
|
379
|
+
return getRandomInt(0, array.length - 1, seedOrRNG, exceptions);
|
|
411
380
|
}
|
|
412
381
|
/**
|
|
413
382
|
* Similar to the `Array.includes` method, but works on a widened version of the array.
|
|
@@ -415,7 +384,7 @@ function getRandomArrayIndex(array, seedOrRNG, exceptions = []) {
|
|
|
415
384
|
* This is useful when the normal `Array.includes` produces a type error from an array that uses an
|
|
416
385
|
* `as const` assertion.
|
|
417
386
|
*/
|
|
418
|
-
function includes(array, searchElement) {
|
|
387
|
+
export function includes(array, searchElement) {
|
|
419
388
|
const widenedArray = array;
|
|
420
389
|
return widenedArray.includes(searchElement);
|
|
421
390
|
}
|
|
@@ -430,8 +399,8 @@ function includes(array, searchElement) {
|
|
|
430
399
|
* @param ensureContiguousValues Optional. Whether the Lua table has to have all contiguous keys in
|
|
431
400
|
* order to be considered an array. Default is true.
|
|
432
401
|
*/
|
|
433
|
-
function isArray(object, ensureContiguousValues = true) {
|
|
434
|
-
if (!
|
|
402
|
+
export function isArray(object, ensureContiguousValues = true) {
|
|
403
|
+
if (!isTable(object)) {
|
|
435
404
|
return false;
|
|
436
405
|
}
|
|
437
406
|
// First, if there is a metatable, this cannot be a simple array and must be a more complex
|
|
@@ -446,7 +415,7 @@ function isArray(object, ensureContiguousValues = true) {
|
|
|
446
415
|
return true;
|
|
447
416
|
}
|
|
448
417
|
// Third, handle the case of non-numerical keys.
|
|
449
|
-
const hasAllNumberKeys = keys.every((key) =>
|
|
418
|
+
const hasAllNumberKeys = keys.every((key) => isNumber(key));
|
|
450
419
|
if (!hasAllNumberKeys) {
|
|
451
420
|
return false;
|
|
452
421
|
}
|
|
@@ -466,7 +435,7 @@ function isArray(object, ensureContiguousValues = true) {
|
|
|
466
435
|
*
|
|
467
436
|
* For example, `[2, 3, 4]` would return true, and `[2, 3, 5]` would return false.
|
|
468
437
|
*/
|
|
469
|
-
function isArrayContiguous(array) {
|
|
438
|
+
export function isArrayContiguous(array) {
|
|
470
439
|
let lastValue;
|
|
471
440
|
for (const element of array) {
|
|
472
441
|
lastValue ??= element - 1;
|
|
@@ -481,17 +450,17 @@ function isArrayContiguous(array) {
|
|
|
481
450
|
*
|
|
482
451
|
* Under the hood, this is performed by converting the array to a set.
|
|
483
452
|
*/
|
|
484
|
-
function isArrayElementsUnique(array) {
|
|
453
|
+
export function isArrayElementsUnique(array) {
|
|
485
454
|
const set = new Set(array);
|
|
486
455
|
return set.size === array.length;
|
|
487
456
|
}
|
|
488
457
|
/** Checks if an array is in the provided 2-dimensional array. */
|
|
489
|
-
function isArrayInArray(arrayToMatch, parentArray) {
|
|
458
|
+
export function isArrayInArray(arrayToMatch, parentArray) {
|
|
490
459
|
return parentArray.some((element) => arrayEquals(element, arrayToMatch));
|
|
491
460
|
}
|
|
492
461
|
/** Helper function to set every element in an array to a specific value. */
|
|
493
462
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
494
|
-
function setAllArrayElements(array, value) {
|
|
463
|
+
export function setAllArrayElements(array, value) {
|
|
495
464
|
for (let i = 0; i < array.length; i++) {
|
|
496
465
|
array[i] = value;
|
|
497
466
|
}
|
|
@@ -509,7 +478,7 @@ function setAllArrayElements(array, value) {
|
|
|
509
478
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
510
479
|
* a random seed.
|
|
511
480
|
*/
|
|
512
|
-
function shuffleArray(originalArray, seedOrRNG) {
|
|
481
|
+
export function shuffleArray(originalArray, seedOrRNG) {
|
|
513
482
|
const array = copyArray(originalArray);
|
|
514
483
|
shuffleArrayInPlace(array, seedOrRNG);
|
|
515
484
|
return array;
|
|
@@ -527,11 +496,11 @@ function shuffleArray(originalArray, seedOrRNG) {
|
|
|
527
496
|
* `RNG.Next` method will be called. If `undefined` is provided, it will default to
|
|
528
497
|
* a random seed.
|
|
529
498
|
*/
|
|
530
|
-
function shuffleArrayInPlace(
|
|
499
|
+
export function shuffleArrayInPlace(
|
|
531
500
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
532
501
|
array, seedOrRNG) {
|
|
533
502
|
let currentIndex = array.length;
|
|
534
|
-
const rng =
|
|
503
|
+
const rng = isRNG(seedOrRNG) ? seedOrRNG : newRNG(seedOrRNG);
|
|
535
504
|
while (currentIndex > 0) {
|
|
536
505
|
currentIndex--;
|
|
537
506
|
const randomIndex = getRandomArrayIndex(array, rng);
|
|
@@ -539,13 +508,13 @@ array, seedOrRNG) {
|
|
|
539
508
|
}
|
|
540
509
|
}
|
|
541
510
|
/** Helper function to sum every value in an array together. */
|
|
542
|
-
function sumArray(array) {
|
|
511
|
+
export function sumArray(array) {
|
|
543
512
|
return array.reduce((accumulator, element) => accumulator + element, 0);
|
|
544
513
|
}
|
|
545
514
|
/**
|
|
546
515
|
* Helper function to swap two different array elements. (The elements will be swapped in-place.)
|
|
547
516
|
*/
|
|
548
|
-
function swapArrayElements(
|
|
517
|
+
export function swapArrayElements(
|
|
549
518
|
// eslint-disable-next-line complete/prefer-readonly-parameter-types
|
|
550
519
|
array, i, j) {
|
|
551
520
|
const value1 = array[i]; // eslint-disable-line @typescript-eslint/no-non-null-assertion
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* These are a collection of functions for non-TypeScript users so that they can access some of
|
|
4
3
|
* useful methods offered on the `Array` class in the JavaScript standard library.
|
|
@@ -8,21 +7,13 @@
|
|
|
8
7
|
*
|
|
9
8
|
* @module
|
|
10
9
|
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.every = every;
|
|
13
|
-
exports.filter = filter;
|
|
14
|
-
exports.find = find;
|
|
15
|
-
exports.forEach = forEach;
|
|
16
|
-
exports.join = join;
|
|
17
|
-
exports.map = map;
|
|
18
|
-
exports.some = some;
|
|
19
10
|
/**
|
|
20
11
|
* Helper function for non-TypeScript users to check if every element in the array is equal to a
|
|
21
12
|
* condition.
|
|
22
13
|
*
|
|
23
14
|
* Internally, this just calls `Array.every`.
|
|
24
15
|
*/
|
|
25
|
-
function every(array, func) {
|
|
16
|
+
export function every(array, func) {
|
|
26
17
|
return array.every(func);
|
|
27
18
|
}
|
|
28
19
|
/**
|
|
@@ -31,7 +22,7 @@ function every(array, func) {
|
|
|
31
22
|
*
|
|
32
23
|
* Internally, this just calls `Array.filter`.
|
|
33
24
|
*/
|
|
34
|
-
function filter(array, func) {
|
|
25
|
+
export function filter(array, func) {
|
|
35
26
|
return array.filter(func);
|
|
36
27
|
}
|
|
37
28
|
/**
|
|
@@ -39,7 +30,7 @@ function filter(array, func) {
|
|
|
39
30
|
*
|
|
40
31
|
* Internally, this just calls `Array.find`.
|
|
41
32
|
*/
|
|
42
|
-
function find(array, func) {
|
|
33
|
+
export function find(array, func) {
|
|
43
34
|
return array.find(func);
|
|
44
35
|
}
|
|
45
36
|
/**
|
|
@@ -47,7 +38,7 @@ function find(array, func) {
|
|
|
47
38
|
*
|
|
48
39
|
* Internally, this just calls `Array.forEach`.
|
|
49
40
|
*/
|
|
50
|
-
function forEach(array, func) {
|
|
41
|
+
export function forEach(array, func) {
|
|
51
42
|
array.forEach(func); // eslint-disable-line unicorn/no-for-each
|
|
52
43
|
}
|
|
53
44
|
// `includes` is not included since there is a normal array helper function of that name.
|
|
@@ -57,7 +48,7 @@ function forEach(array, func) {
|
|
|
57
48
|
*
|
|
58
49
|
* Internally, this just calls `Array.join`.
|
|
59
50
|
*/
|
|
60
|
-
function join(array, separator) {
|
|
51
|
+
export function join(array, separator) {
|
|
61
52
|
return array.join(separator);
|
|
62
53
|
}
|
|
63
54
|
/**
|
|
@@ -66,7 +57,7 @@ function join(array, separator) {
|
|
|
66
57
|
*
|
|
67
58
|
* Internally, this just calls `Array.map`.
|
|
68
59
|
*/
|
|
69
|
-
function map(array, func) {
|
|
60
|
+
export function map(array, func) {
|
|
70
61
|
return array.map(func);
|
|
71
62
|
}
|
|
72
63
|
/**
|
|
@@ -75,6 +66,6 @@ function map(array, func) {
|
|
|
75
66
|
*
|
|
76
67
|
* Internally, this just calls `Array.some`.
|
|
77
68
|
*/
|
|
78
|
-
function some(array, func) {
|
|
69
|
+
export function some(array, func) {
|
|
79
70
|
return array.some(func);
|
|
80
71
|
}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.benchmark = benchmark;
|
|
4
|
-
const log_1 = require("./log");
|
|
1
|
+
import { log } from "./log";
|
|
5
2
|
/**
|
|
6
3
|
* Helper function to benchmark the performance of a function.
|
|
7
4
|
*
|
|
@@ -15,8 +12,8 @@ const log_1 = require("./log");
|
|
|
15
12
|
* @returns An array containing the average time in milliseconds for each function. (This will also
|
|
16
13
|
* be printed to the log.)
|
|
17
14
|
*/
|
|
18
|
-
function benchmark(numTrials, ...functions) {
|
|
19
|
-
|
|
15
|
+
export function benchmark(numTrials, ...functions) {
|
|
16
|
+
log(`Benchmarking ${functions.length} function(s) with ${numTrials} trials.`);
|
|
20
17
|
const averages = [];
|
|
21
18
|
for (const [i, func] of functions.entries()) {
|
|
22
19
|
let totalTimeMilliseconds = 0;
|
|
@@ -28,7 +25,7 @@ function benchmark(numTrials, ...functions) {
|
|
|
28
25
|
totalTimeMilliseconds += elapsedTimeMilliseconds;
|
|
29
26
|
}
|
|
30
27
|
const averageTimeMilliseconds = totalTimeMilliseconds / numTrials;
|
|
31
|
-
|
|
28
|
+
log(`The average time of the function at index ${i} is: ${averageTimeMilliseconds} milliseconds`);
|
|
32
29
|
averages.push(averageTimeMilliseconds);
|
|
33
30
|
}
|
|
34
31
|
return averages;
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.isSerializedBitSet128 = isSerializedBitSet128;
|
|
7
|
-
exports.serializeBitSet128 = serializeBitSet128;
|
|
8
|
-
const SerializationBrand_1 = require("../enums/private/SerializationBrand");
|
|
9
|
-
const isaacAPIClass_1 = require("./isaacAPIClass");
|
|
10
|
-
const table_1 = require("./table");
|
|
11
|
-
const types_1 = require("./types");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { SerializationBrand } from "../enums/private/SerializationBrand";
|
|
2
|
+
import { isIsaacAPIClassOfType } from "./isaacAPIClass";
|
|
3
|
+
import { copyUserdataValuesToTable, getNumbersFromTable, tableHasKeys, } from "./table";
|
|
4
|
+
import { isTable } from "./types";
|
|
5
|
+
import { assertDefined } from "./utils";
|
|
13
6
|
const OBJECT_NAME = "BitSet128";
|
|
14
7
|
const KEYS = ["l", "h"];
|
|
15
8
|
/** Helper function to copy a `BitSet128` Isaac API class. */
|
|
16
|
-
function copyBitSet128(bitSet128) {
|
|
9
|
+
export function copyBitSet128(bitSet128) {
|
|
17
10
|
if (!isBitSet128(bitSet128)) {
|
|
18
11
|
error(`Failed to copy a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
19
12
|
}
|
|
@@ -25,39 +18,39 @@ function copyBitSet128(bitSet128) {
|
|
|
25
18
|
* Helper function to convert a `SerializedBitSet128` object to a normal `BitSet128` object. (This
|
|
26
19
|
* is used by the save data manager when reading data from the "save#.dat" file.)
|
|
27
20
|
*/
|
|
28
|
-
function deserializeBitSet128(bitSet128) {
|
|
29
|
-
if (!
|
|
21
|
+
export function deserializeBitSet128(bitSet128) {
|
|
22
|
+
if (!isTable(bitSet128)) {
|
|
30
23
|
error(`Failed to deserialize a ${OBJECT_NAME} object since the provided object was not a Lua table.`);
|
|
31
24
|
}
|
|
32
|
-
const [l, h] =
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const [l, h] = getNumbersFromTable(bitSet128, OBJECT_NAME, ...KEYS);
|
|
26
|
+
assertDefined(l, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: l`);
|
|
27
|
+
assertDefined(h, `Failed to deserialize a ${OBJECT_NAME} object since the provided object did not have a value for: h`);
|
|
35
28
|
return BitSet128(l, h);
|
|
36
29
|
}
|
|
37
30
|
/** Helper function to check if something is an instantiated `BitSet128` object. */
|
|
38
|
-
function isBitSet128(object) {
|
|
39
|
-
return
|
|
31
|
+
export function isBitSet128(object) {
|
|
32
|
+
return isIsaacAPIClassOfType(object, OBJECT_NAME);
|
|
40
33
|
}
|
|
41
34
|
/**
|
|
42
35
|
* Used to determine is the given table is a serialized `BitSet128` object created by the `deepCopy`
|
|
43
36
|
* function.
|
|
44
37
|
*/
|
|
45
|
-
function isSerializedBitSet128(object) {
|
|
46
|
-
if (!
|
|
38
|
+
export function isSerializedBitSet128(object) {
|
|
39
|
+
if (!isTable(object)) {
|
|
47
40
|
return false;
|
|
48
41
|
}
|
|
49
|
-
return (
|
|
42
|
+
return (tableHasKeys(object, ...KEYS) && object.has(SerializationBrand.BIT_SET_128));
|
|
50
43
|
}
|
|
51
44
|
/**
|
|
52
45
|
* Helper function to convert a `BitSet128` object to a `SerializedBitSet128` object. (This is used
|
|
53
46
|
* by the save data manager when writing data from the "save#.dat" file.)
|
|
54
47
|
*/
|
|
55
|
-
function serializeBitSet128(bitSet128) {
|
|
48
|
+
export function serializeBitSet128(bitSet128) {
|
|
56
49
|
if (!isBitSet128(bitSet128)) {
|
|
57
50
|
error(`Failed to serialize a ${OBJECT_NAME} object since the provided object was not a userdata ${OBJECT_NAME} class.`);
|
|
58
51
|
}
|
|
59
52
|
const bitSet128Table = new LuaMap();
|
|
60
|
-
|
|
61
|
-
bitSet128Table.set(
|
|
53
|
+
copyUserdataValuesToTable(bitSet128, KEYS, bitSet128Table);
|
|
54
|
+
bitSet128Table.set(SerializationBrand.BIT_SET_128, "");
|
|
62
55
|
return bitSet128Table;
|
|
63
56
|
}
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.convertBinaryToDecimal = convertBinaryToDecimal;
|
|
5
|
-
exports.convertDecimalToBinary = convertDecimalToBinary;
|
|
6
|
-
exports.countSetBits = countSetBits;
|
|
7
|
-
exports.getKBitOfN = getKBitOfN;
|
|
8
|
-
exports.getNumBitsOfN = getNumBitsOfN;
|
|
9
|
-
exports.setToBitFlags = setToBitFlags;
|
|
10
|
-
const flag_1 = require("./flag");
|
|
11
|
-
const types_1 = require("./types");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import { addFlag } from "./flag";
|
|
2
|
+
import { parseIntSafe } from "./types";
|
|
3
|
+
import { assertDefined } from "./utils";
|
|
13
4
|
/** Helper function to convert a set of flags to a single `BitFlags` object. */
|
|
14
|
-
function arrayToBitFlags(array) {
|
|
5
|
+
export function arrayToBitFlags(array) {
|
|
15
6
|
let flags = 0;
|
|
16
7
|
for (const flag of array) {
|
|
17
|
-
flags =
|
|
8
|
+
flags = addFlag(flags, flag);
|
|
18
9
|
}
|
|
19
10
|
return flags;
|
|
20
11
|
}
|
|
21
12
|
/** Helper function to convert an array of bits to the resulting decimal number. */
|
|
22
|
-
function convertBinaryToDecimal(bits) {
|
|
13
|
+
export function convertBinaryToDecimal(bits) {
|
|
23
14
|
const bitsString = bits.join("");
|
|
24
15
|
return Number.parseInt(bitsString, 2);
|
|
25
16
|
}
|
|
@@ -32,12 +23,12 @@ function convertBinaryToDecimal(bits) {
|
|
|
32
23
|
* side until the minimum length is met. Default is undefined (which will not cause
|
|
33
24
|
* any padding).
|
|
34
25
|
*/
|
|
35
|
-
function convertDecimalToBinary(num, minLength) {
|
|
26
|
+
export function convertDecimalToBinary(num, minLength) {
|
|
36
27
|
const bits = [];
|
|
37
28
|
const bitsString = num.toString(2);
|
|
38
29
|
for (const bitString of bitsString) {
|
|
39
|
-
const bit =
|
|
40
|
-
|
|
30
|
+
const bit = parseIntSafe(bitString);
|
|
31
|
+
assertDefined(bit, `Failed to convert the following number to binary: ${num}`);
|
|
41
32
|
bits.push(bit);
|
|
42
33
|
}
|
|
43
34
|
if (minLength !== undefined) {
|
|
@@ -52,7 +43,7 @@ function convertDecimalToBinary(num, minLength) {
|
|
|
52
43
|
* Helper function to count the number of bits that are set to 1 in a binary representation of a
|
|
53
44
|
* number.
|
|
54
45
|
*/
|
|
55
|
-
function countSetBits(num) {
|
|
46
|
+
export function countSetBits(num) {
|
|
56
47
|
let count = 0;
|
|
57
48
|
while (num > 0) {
|
|
58
49
|
num &= num - 1;
|
|
@@ -61,11 +52,11 @@ function countSetBits(num) {
|
|
|
61
52
|
return count;
|
|
62
53
|
}
|
|
63
54
|
/** Helper function to get the value of a specific but in a binary representation of a number. */
|
|
64
|
-
function getKBitOfN(k, n) {
|
|
55
|
+
export function getKBitOfN(k, n) {
|
|
65
56
|
return (n >>> k) & 1;
|
|
66
57
|
}
|
|
67
58
|
/** Helper function to get the number of bits in a binary representation of a number. */
|
|
68
|
-
function getNumBitsOfN(n) {
|
|
59
|
+
export function getNumBitsOfN(n) {
|
|
69
60
|
let numBits = 0;
|
|
70
61
|
while (n > 0) {
|
|
71
62
|
numBits++;
|
|
@@ -74,10 +65,10 @@ function getNumBitsOfN(n) {
|
|
|
74
65
|
return numBits;
|
|
75
66
|
}
|
|
76
67
|
/** Helper function to convert a set of flags to a single `BitFlags` object. */
|
|
77
|
-
function setToBitFlags(set) {
|
|
68
|
+
export function setToBitFlags(set) {
|
|
78
69
|
let flags = 0;
|
|
79
70
|
for (const flag of set) {
|
|
80
|
-
flags =
|
|
71
|
+
flags = addFlag(flags, flag);
|
|
81
72
|
}
|
|
82
73
|
return flags;
|
|
83
74
|
}
|
package/dist/functions/bombs.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBombRadiusFromDamage = getBombRadiusFromDamage;
|
|
4
1
|
/** Helper function to find out how large a bomb explosion is based on the damage inflicted. */
|
|
5
|
-
function getBombRadiusFromDamage(damage) {
|
|
2
|
+
export function getBombRadiusFromDamage(damage) {
|
|
6
3
|
if (damage > 175) {
|
|
7
4
|
return 105;
|
|
8
5
|
}
|