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/npcs.js
CHANGED
|
@@ -1,39 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.isDaddyLongLegsChildStompEntity = isDaddyLongLegsChildStompEntity;
|
|
6
|
-
exports.isDyingDump = isDyingDump;
|
|
7
|
-
exports.isDyingEggyWithNoSpidersLeft = isDyingEggyWithNoSpidersLeft;
|
|
8
|
-
exports.isRaglingDeathPatch = isRaglingDeathPatch;
|
|
9
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
10
|
-
const constants_1 = require("../core/constants");
|
|
11
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
12
|
-
const entitiesSpecific_1 = require("./entitiesSpecific");
|
|
1
|
+
import { BegottenVariant, BigHornVariant, ChargerSubType, ChargerVariant, DarkEsauVariant, DeathVariant, DumpVariant, EntityType, HopperVariant, MamaGurdyVariant, MotherSubType, MotherVariant, NPCState, PeepVariant, RaglingVariant, VisVariant, } from "isaac-typescript-definitions";
|
|
2
|
+
import { EGGY_STATE_FRAME_OF_FINAL_SPIDER } from "../core/constants";
|
|
3
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
4
|
+
import { getNPCs } from "./entitiesSpecific";
|
|
13
5
|
/**
|
|
14
6
|
* Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
|
|
15
7
|
* doors open.
|
|
16
8
|
*/
|
|
17
|
-
const NON_ALIVE_NPCS_TYPE_VARIANT = new
|
|
18
|
-
`${
|
|
19
|
-
`${
|
|
20
|
-
`${
|
|
21
|
-
`${
|
|
22
|
-
`${
|
|
23
|
-
`${
|
|
24
|
-
`${
|
|
25
|
-
`${
|
|
26
|
-
`${
|
|
27
|
-
`${
|
|
28
|
-
`${
|
|
9
|
+
const NON_ALIVE_NPCS_TYPE_VARIANT = new ReadonlySet([
|
|
10
|
+
`${EntityType.VIS}.${VisVariant.CHUBBER_PROJECTILE}`, // 39.22
|
|
11
|
+
`${EntityType.DEATH}.${DeathVariant.DEATH_SCYTHE}`, // 66.10
|
|
12
|
+
`${EntityType.PEEP}.${PeepVariant.PEEP_EYE}`, // 68.10
|
|
13
|
+
`${EntityType.PEEP}.${PeepVariant.BLOAT_EYE}`, // 68.11
|
|
14
|
+
`${EntityType.BEGOTTEN}.${BegottenVariant.BEGOTTEN_CHAIN}`, // 251.10
|
|
15
|
+
`${EntityType.MAMA_GURDY}.${MamaGurdyVariant.LEFT_HAND}`, // 266.1
|
|
16
|
+
`${EntityType.MAMA_GURDY}.${MamaGurdyVariant.RIGHT_HAND}`, // 266.2
|
|
17
|
+
`${EntityType.BIG_HORN}.${BigHornVariant.SMALL_HOLE}`, // 411.1
|
|
18
|
+
`${EntityType.BIG_HORN}.${BigHornVariant.BIG_HOLE}`, // 411.2
|
|
19
|
+
`${EntityType.DARK_ESAU}.${DarkEsauVariant.DARK_ESAU}`, // 866.0
|
|
20
|
+
`${EntityType.DARK_ESAU}.${DarkEsauVariant.PIT}`, // 866.1
|
|
29
21
|
]);
|
|
30
22
|
/**
|
|
31
23
|
* Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
|
|
32
24
|
* doors open.
|
|
33
25
|
*/
|
|
34
|
-
const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new
|
|
35
|
-
`${
|
|
36
|
-
`${
|
|
26
|
+
const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet([
|
|
27
|
+
`${EntityType.CHARGER}.${ChargerVariant.CHARGER}.${ChargerSubType.MY_SHADOW}`, // 23.0.1
|
|
28
|
+
`${EntityType.MOTHER}.${MotherVariant.MOTHER_1}.${MotherSubType.PHASE_2}`, // 912
|
|
37
29
|
]);
|
|
38
30
|
/**
|
|
39
31
|
* Helper function to get all of the non-dead NPCs in the room.
|
|
@@ -49,15 +41,15 @@ const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet_1.ReadonlySet([
|
|
|
49
41
|
* -1, which matches every sub-type.
|
|
50
42
|
* @param ignoreFriendly Optional. Default is false.
|
|
51
43
|
*/
|
|
52
|
-
function getAliveNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
|
|
53
|
-
const npcs =
|
|
44
|
+
export function getAliveNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
|
|
45
|
+
const npcs = getNPCs(entityType, variant, subType, ignoreFriendly);
|
|
54
46
|
return npcs.filter((npc) => !npc.IsDead() && !isAliveExceptionNPC(npc));
|
|
55
47
|
}
|
|
56
48
|
/**
|
|
57
49
|
* Checks for specific NPCs that have "CanShutDoors" set to true naturally by the game, but should
|
|
58
50
|
* not actually keep the doors closed (like Death's scythes).
|
|
59
51
|
*/
|
|
60
|
-
function isAliveExceptionNPC(npc) {
|
|
52
|
+
export function isAliveExceptionNPC(npc) {
|
|
61
53
|
const entityTypeVariant = `${npc.Type}.${npc.Variant}`;
|
|
62
54
|
if (NON_ALIVE_NPCS_TYPE_VARIANT.has(entityTypeVariant)) {
|
|
63
55
|
return true;
|
|
@@ -93,31 +85,31 @@ function isAliveExceptionNPC(npc) {
|
|
|
93
85
|
* entity type, variant, and sub-type. The `Entity.Parent` field will be undefined in this case, so
|
|
94
86
|
* the way to tell them apart is to check for a non-undefined `Entity.SpawnerEntity` field.
|
|
95
87
|
*/
|
|
96
|
-
function isDaddyLongLegsChildStompEntity(npc) {
|
|
97
|
-
return (npc.Type ===
|
|
88
|
+
export function isDaddyLongLegsChildStompEntity(npc) {
|
|
89
|
+
return (npc.Type === EntityType.DADDY_LONG_LEGS && npc.SpawnerEntity !== undefined);
|
|
98
90
|
}
|
|
99
91
|
/**
|
|
100
92
|
* Helper function to detect the custom death state of a Dump. When Dumps die, they go to
|
|
101
93
|
* `NPCState.SPECIAL`, spit out their head, and then slowly fade away while shooting a burst of
|
|
102
94
|
* tears.
|
|
103
95
|
*/
|
|
104
|
-
function isDyingDump(npc) {
|
|
105
|
-
return (npc.Type ===
|
|
96
|
+
export function isDyingDump(npc) {
|
|
97
|
+
return (npc.Type === EntityType.DUMP
|
|
106
98
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
107
|
-
&& npc.Variant ===
|
|
108
|
-
&& npc.State ===
|
|
99
|
+
&& npc.Variant === DumpVariant.DUMP
|
|
100
|
+
&& npc.State === NPCState.SPECIAL);
|
|
109
101
|
}
|
|
110
102
|
/**
|
|
111
103
|
* Helper function to detect the custom death state of an Eggy. Eggies are never actually marked
|
|
112
104
|
* dead by the game. Instead, when Eggies take fatal damage, they go into NPCState.STATE_SUICIDE and
|
|
113
105
|
* spawn 14 Swarm Spiders while their StateFrame ticks upwards.
|
|
114
106
|
*/
|
|
115
|
-
function isDyingEggyWithNoSpidersLeft(npc) {
|
|
116
|
-
return (npc.Type ===
|
|
107
|
+
export function isDyingEggyWithNoSpidersLeft(npc) {
|
|
108
|
+
return (npc.Type === EntityType.HOPPER
|
|
117
109
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
118
|
-
&& npc.Variant ===
|
|
119
|
-
&& npc.State ===
|
|
120
|
-
&& npc.StateFrame >=
|
|
110
|
+
&& npc.Variant === HopperVariant.EGGY
|
|
111
|
+
&& npc.State === NPCState.SUICIDE
|
|
112
|
+
&& npc.StateFrame >= EGGY_STATE_FRAME_OF_FINAL_SPIDER);
|
|
121
113
|
}
|
|
122
114
|
/**
|
|
123
115
|
* Helper function to detect the custom death state of a Rag Man Ragling. When Rag Man Raglings die,
|
|
@@ -125,10 +117,10 @@ function isDyingEggyWithNoSpidersLeft(npc) {
|
|
|
125
117
|
* them to show up as an "alive" enemy, so they should usually be filtered out of lists of alive
|
|
126
118
|
* enemies.
|
|
127
119
|
*/
|
|
128
|
-
function isRaglingDeathPatch(npc) {
|
|
129
|
-
return (npc.Type ===
|
|
120
|
+
export function isRaglingDeathPatch(npc) {
|
|
121
|
+
return (npc.Type === EntityType.RAGLING
|
|
130
122
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
|
131
|
-
&& npc.Variant ===
|
|
123
|
+
&& npc.Variant === RaglingVariant.RAG_MANS_RAGLING
|
|
132
124
|
// They go to `STATE_SPECIAL` when they are patches on the ground.
|
|
133
|
-
&& npc.State ===
|
|
125
|
+
&& npc.State === NPCState.SPECIAL);
|
|
134
126
|
}
|
|
@@ -1,62 +1,49 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/* eslint-disable perfectionist/sort-modules */
|
|
3
|
-
|
|
4
|
-
exports.isHeart = isHeart;
|
|
5
|
-
exports.isCoin = isCoin;
|
|
6
|
-
exports.isKey = isKey;
|
|
7
|
-
exports.isBombPickup = isBombPickup;
|
|
8
|
-
exports.isPoopPickup = isPoopPickup;
|
|
9
|
-
exports.isSack = isSack;
|
|
10
|
-
exports.isPill = isPill;
|
|
11
|
-
exports.isBattery = isBattery;
|
|
12
|
-
exports.isCollectible = isCollectible;
|
|
13
|
-
exports.isCardPickup = isCardPickup;
|
|
14
|
-
exports.isTrinket = isTrinket;
|
|
15
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
2
|
+
import { EntityType, PickupVariant } from "isaac-typescript-definitions";
|
|
16
3
|
/** For `PickupVariant.HEART` (10). */
|
|
17
|
-
function isHeart(pickup) {
|
|
18
|
-
return (pickup.Type ===
|
|
4
|
+
export function isHeart(pickup) {
|
|
5
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.HEART);
|
|
19
6
|
}
|
|
20
7
|
/** For `PickupVariant.COIN` (20). */
|
|
21
|
-
function isCoin(pickup) {
|
|
22
|
-
return (pickup.Type ===
|
|
8
|
+
export function isCoin(pickup) {
|
|
9
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.COIN);
|
|
23
10
|
}
|
|
24
11
|
/** For `PickupVariant.KEY` (30). */
|
|
25
|
-
function isKey(pickup) {
|
|
26
|
-
return (pickup.Type ===
|
|
12
|
+
export function isKey(pickup) {
|
|
13
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.KEY);
|
|
27
14
|
}
|
|
28
15
|
/** For `PickupVariant.BOMB` (40). */
|
|
29
|
-
function isBombPickup(pickup) {
|
|
30
|
-
return (pickup.Type ===
|
|
16
|
+
export function isBombPickup(pickup) {
|
|
17
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.BOMB);
|
|
31
18
|
}
|
|
32
19
|
/** For `PickupVariant.POOP` (42). */
|
|
33
|
-
function isPoopPickup(pickup) {
|
|
34
|
-
return (pickup.Type ===
|
|
20
|
+
export function isPoopPickup(pickup) {
|
|
21
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.POOP);
|
|
35
22
|
}
|
|
36
23
|
/** For `PickupVariant.SACK` (69). */
|
|
37
|
-
function isSack(pickup) {
|
|
38
|
-
return (pickup.Type ===
|
|
24
|
+
export function isSack(pickup) {
|
|
25
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.SACK);
|
|
39
26
|
}
|
|
40
27
|
/** For `PickupVariant.PILL` (70). */
|
|
41
|
-
function isPill(pickup) {
|
|
42
|
-
return (pickup.Type ===
|
|
28
|
+
export function isPill(pickup) {
|
|
29
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.PILL);
|
|
43
30
|
}
|
|
44
31
|
/** For `PickupVariant.LIL_BATTERY` (90). */
|
|
45
|
-
function isBattery(pickup) {
|
|
46
|
-
return (pickup.Type ===
|
|
47
|
-
&& pickup.Variant ===
|
|
32
|
+
export function isBattery(pickup) {
|
|
33
|
+
return (pickup.Type === EntityType.PICKUP
|
|
34
|
+
&& pickup.Variant === PickupVariant.LIL_BATTERY);
|
|
48
35
|
}
|
|
49
36
|
/** For `PickupVariant.COLLECTIBLE` (100). */
|
|
50
|
-
function isCollectible(pickup) {
|
|
51
|
-
return (pickup.Type ===
|
|
52
|
-
&& pickup.Variant ===
|
|
37
|
+
export function isCollectible(pickup) {
|
|
38
|
+
return (pickup.Type === EntityType.PICKUP
|
|
39
|
+
&& pickup.Variant === PickupVariant.COLLECTIBLE);
|
|
53
40
|
}
|
|
54
41
|
/** For `PickupVariant.CARD` (300). */
|
|
55
|
-
function isCardPickup(pickup) {
|
|
56
|
-
return (pickup.Type ===
|
|
42
|
+
export function isCardPickup(pickup) {
|
|
43
|
+
return (pickup.Type === EntityType.PICKUP && pickup.Variant === PickupVariant.CARD);
|
|
57
44
|
}
|
|
58
45
|
/** For `PickupVariant.TRINKET` (350). */
|
|
59
|
-
function isTrinket(pickup) {
|
|
60
|
-
return (pickup.Type ===
|
|
61
|
-
&& pickup.Variant ===
|
|
46
|
+
export function isTrinket(pickup) {
|
|
47
|
+
return (pickup.Type === EntityType.PICKUP
|
|
48
|
+
&& pickup.Variant === PickupVariant.TRINKET);
|
|
62
49
|
}
|
|
@@ -1,32 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
exports.isRedHeart = isRedHeart;
|
|
15
|
-
exports.isRedHeartSubType = isRedHeartSubType;
|
|
16
|
-
exports.removeAllRedHearts = removeAllRedHearts;
|
|
17
|
-
const constants_1 = require("../core/constants");
|
|
18
|
-
const batteryNames_1 = require("../objects/batteryNames");
|
|
19
|
-
const bombNames_1 = require("../objects/bombNames");
|
|
20
|
-
const chestNames_1 = require("../objects/chestNames");
|
|
21
|
-
const coinNames_1 = require("../objects/coinNames");
|
|
22
|
-
const coinSubTypeToValue_1 = require("../objects/coinSubTypeToValue");
|
|
23
|
-
const heartNames_1 = require("../objects/heartNames");
|
|
24
|
-
const keyNames_1 = require("../objects/keyNames");
|
|
25
|
-
const sackNames_1 = require("../objects/sackNames");
|
|
26
|
-
const redHeartSubTypesSet_1 = require("../sets/redHeartSubTypesSet");
|
|
27
|
-
const entities_1 = require("./entities");
|
|
28
|
-
const pickupVariants_1 = require("./pickupVariants");
|
|
29
|
-
const pickupsSpecific_1 = require("./pickupsSpecific");
|
|
1
|
+
import { CHEST_PICKUP_VARIANTS_SET } from "../core/constants";
|
|
2
|
+
import { BATTERY_NAMES, DEFAULT_BATTERY_NAME } from "../objects/batteryNames";
|
|
3
|
+
import { BOMB_NAMES, DEFAULT_BOMB_NAME } from "../objects/bombNames";
|
|
4
|
+
import { CHEST_NAMES, DEFAULT_CHEST_NAME } from "../objects/chestNames";
|
|
5
|
+
import { COIN_NAMES, DEFAULT_COIN_NAME } from "../objects/coinNames";
|
|
6
|
+
import { COIN_SUB_TYPE_TO_VALUE, DEFAULT_COIN_VALUE, } from "../objects/coinSubTypeToValue";
|
|
7
|
+
import { DEFAULT_HEART_NAME, HEART_NAMES } from "../objects/heartNames";
|
|
8
|
+
import { DEFAULT_KEY_NAME, KEY_NAMES } from "../objects/keyNames";
|
|
9
|
+
import { DEFAULT_SACK_NAME, SACK_NAMES } from "../objects/sackNames";
|
|
10
|
+
import { RED_HEART_SUB_TYPES_SET } from "../sets/redHeartSubTypesSet";
|
|
11
|
+
import { removeEntities } from "./entities";
|
|
12
|
+
import { isHeart } from "./pickupVariants";
|
|
13
|
+
import { getHearts } from "./pickupsSpecific";
|
|
30
14
|
/**
|
|
31
15
|
* Helper function to get the name of a battery, as listed in the "entities2.xml" file. Returns
|
|
32
16
|
* "Unknown" if the provided battery sub-type is not valid.
|
|
@@ -35,10 +19,10 @@ const pickupsSpecific_1 = require("./pickupsSpecific");
|
|
|
35
19
|
*
|
|
36
20
|
* For example, `getBatteryName(BatterySubType.MICRO)` would return "Micro Battery".
|
|
37
21
|
*/
|
|
38
|
-
function getBatteryName(batterySubType) {
|
|
22
|
+
export function getBatteryName(batterySubType) {
|
|
39
23
|
// Handle modded hearts.
|
|
40
24
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
41
|
-
return
|
|
25
|
+
return BATTERY_NAMES[batterySubType] ?? DEFAULT_BATTERY_NAME;
|
|
42
26
|
}
|
|
43
27
|
/**
|
|
44
28
|
* Helper function to get the name of a bomb, as listed in the "entities2.xml" file. Returns
|
|
@@ -48,10 +32,10 @@ function getBatteryName(batterySubType) {
|
|
|
48
32
|
*
|
|
49
33
|
* For example, `getBombName(BombSubType.DOUBLE_PACK)` would return "Double Bomb".
|
|
50
34
|
*/
|
|
51
|
-
function getBombName(bombSubType) {
|
|
35
|
+
export function getBombName(bombSubType) {
|
|
52
36
|
// Handle modded bombs.
|
|
53
37
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
54
|
-
return
|
|
38
|
+
return BOMB_NAMES[bombSubType] ?? DEFAULT_BOMB_NAME;
|
|
55
39
|
}
|
|
56
40
|
/**
|
|
57
41
|
* Helper function to get the name of a chest, as listed in the "entities2.xml" file. Returns
|
|
@@ -61,9 +45,9 @@ function getBombName(bombSubType) {
|
|
|
61
45
|
*
|
|
62
46
|
* For example, `getChestName(PickupVariant.SPIKED_CHEST)` would return "Spiked Chest".
|
|
63
47
|
*/
|
|
64
|
-
function getChestName(pickupVariant) {
|
|
65
|
-
const chestNames =
|
|
66
|
-
return chestNames[pickupVariant] ??
|
|
48
|
+
export function getChestName(pickupVariant) {
|
|
49
|
+
const chestNames = CHEST_NAMES;
|
|
50
|
+
return chestNames[pickupVariant] ?? DEFAULT_CHEST_NAME;
|
|
67
51
|
}
|
|
68
52
|
/**
|
|
69
53
|
* Helper function to get the name of a coin, as listed in the "entities2.xml" file. Returns
|
|
@@ -73,20 +57,20 @@ function getChestName(pickupVariant) {
|
|
|
73
57
|
*
|
|
74
58
|
* For example, `getCoinName(CoinSubType.DOUBLE_PACK)` would return "Double Penny".
|
|
75
59
|
*/
|
|
76
|
-
function getCoinName(coinSubType) {
|
|
60
|
+
export function getCoinName(coinSubType) {
|
|
77
61
|
// Handle modded coins.
|
|
78
62
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
79
|
-
return
|
|
63
|
+
return COIN_NAMES[coinSubType] ?? DEFAULT_COIN_NAME;
|
|
80
64
|
}
|
|
81
65
|
/**
|
|
82
66
|
* Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
|
|
83
67
|
* sub-types.
|
|
84
68
|
*/
|
|
85
|
-
function getCoinValue(coinSubType) {
|
|
86
|
-
const value =
|
|
69
|
+
export function getCoinValue(coinSubType) {
|
|
70
|
+
const value = COIN_SUB_TYPE_TO_VALUE[coinSubType];
|
|
87
71
|
// Handle modded coin sub-types.
|
|
88
72
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
89
|
-
return value ??
|
|
73
|
+
return value ?? DEFAULT_COIN_VALUE;
|
|
90
74
|
}
|
|
91
75
|
/**
|
|
92
76
|
* Helper function to get the name of a heart, as listed in the "entities2.xml" file. Returns
|
|
@@ -96,10 +80,10 @@ function getCoinValue(coinSubType) {
|
|
|
96
80
|
*
|
|
97
81
|
* For example, `getHeartName(HeartSubType.ETERNAL)` would return "Heart (eternal)".
|
|
98
82
|
*/
|
|
99
|
-
function getHeartName(heartSubType) {
|
|
83
|
+
export function getHeartName(heartSubType) {
|
|
100
84
|
// Handle modded hearts.
|
|
101
85
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
102
|
-
return
|
|
86
|
+
return HEART_NAMES[heartSubType] ?? DEFAULT_HEART_NAME;
|
|
103
87
|
}
|
|
104
88
|
/**
|
|
105
89
|
* Helper function to get the name of a key, as listed in the "entities2.xml" file. Returns
|
|
@@ -109,15 +93,15 @@ function getHeartName(heartSubType) {
|
|
|
109
93
|
*
|
|
110
94
|
* For example, `getKeyName(KeySubType.DOUBLE_PACK)` would return "Key Ring".
|
|
111
95
|
*/
|
|
112
|
-
function getKeyName(keySubType) {
|
|
96
|
+
export function getKeyName(keySubType) {
|
|
113
97
|
// Handle modded bombs.
|
|
114
98
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
115
|
-
return
|
|
99
|
+
return KEY_NAMES[keySubType] ?? DEFAULT_KEY_NAME;
|
|
116
100
|
}
|
|
117
101
|
/** Helper function to get all of the red heart pickup entities in the room. */
|
|
118
|
-
function getRedHearts() {
|
|
119
|
-
const hearts =
|
|
120
|
-
return hearts.filter((heart) =>
|
|
102
|
+
export function getRedHearts() {
|
|
103
|
+
const hearts = getHearts();
|
|
104
|
+
return hearts.filter((heart) => RED_HEART_SUB_TYPES_SET.has(heart.SubType));
|
|
121
105
|
}
|
|
122
106
|
/**
|
|
123
107
|
* Helper function to get the name of a sack, as listed in the "entities2.xml" file. Returns
|
|
@@ -127,33 +111,33 @@ function getRedHearts() {
|
|
|
127
111
|
*
|
|
128
112
|
* For example, `getSackName(SackSubType.NORMAL)` would return "Grab Bag".
|
|
129
113
|
*/
|
|
130
|
-
function getSackName(sackSubType) {
|
|
114
|
+
export function getSackName(sackSubType) {
|
|
131
115
|
// Handle modded hearts.
|
|
132
116
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
133
|
-
return
|
|
117
|
+
return SACK_NAMES[sackSubType] ?? DEFAULT_SACK_NAME;
|
|
134
118
|
}
|
|
135
119
|
/** Helper function to test if the provided pickup matches one of the various chest variants. */
|
|
136
|
-
function isChest(pickup) {
|
|
120
|
+
export function isChest(pickup) {
|
|
137
121
|
return isChestVariant(pickup.Variant);
|
|
138
122
|
}
|
|
139
123
|
/**
|
|
140
124
|
* Helper function to test if the provided pickup variant matches one of the various chest variants.
|
|
141
125
|
*/
|
|
142
|
-
function isChestVariant(pickupVariant) {
|
|
143
|
-
return
|
|
126
|
+
export function isChestVariant(pickupVariant) {
|
|
127
|
+
return CHEST_PICKUP_VARIANTS_SET.has(pickupVariant);
|
|
144
128
|
}
|
|
145
129
|
/**
|
|
146
130
|
* Helper function to test if the provided pickup matches one of the various red heart sub-types.
|
|
147
131
|
*/
|
|
148
|
-
function isRedHeart(pickup) {
|
|
149
|
-
return
|
|
132
|
+
export function isRedHeart(pickup) {
|
|
133
|
+
return isHeart(pickup) && RED_HEART_SUB_TYPES_SET.has(pickup.SubType);
|
|
150
134
|
}
|
|
151
135
|
/**
|
|
152
136
|
* Helper function to test if the provided heart sub-type matches one of the various red heart
|
|
153
137
|
* sub-types.
|
|
154
138
|
*/
|
|
155
|
-
function isRedHeartSubType(heartSubType) {
|
|
156
|
-
return
|
|
139
|
+
export function isRedHeartSubType(heartSubType) {
|
|
140
|
+
return RED_HEART_SUB_TYPES_SET.has(heartSubType);
|
|
157
141
|
}
|
|
158
142
|
/**
|
|
159
143
|
* Helper function to remove all of the red heart pickup entities in the room.
|
|
@@ -161,7 +145,7 @@ function isRedHeartSubType(heartSubType) {
|
|
|
161
145
|
* @param cap Optional. If specified, will only remove the given amount of hearts.
|
|
162
146
|
* @returns The red hearts that were removed.
|
|
163
147
|
*/
|
|
164
|
-
function removeAllRedHearts(cap) {
|
|
148
|
+
export function removeAllRedHearts(cap) {
|
|
165
149
|
const redHearts = getRedHearts();
|
|
166
|
-
return
|
|
150
|
+
return removeEntities(redHearts, cap);
|
|
167
151
|
}
|