isaacscript-common 84.0.0 → 84.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/arrays/cachedEnumValues.js +33 -0
- package/dist/callbackClasses.js +289 -0
- package/dist/callbacks.js +181 -0
- package/dist/classes/DefaultMap.js +171 -0
- package/dist/classes/ModFeature.js +244 -0
- package/dist/classes/ModUpgraded.js +324 -0
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +19 -0
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +29 -0
- package/dist/classes/callbacks/InputActionFilter.js +24 -0
- package/dist/classes/callbacks/InputActionPlayer.js +37 -0
- package/dist/classes/callbacks/PostAmbushFinished.js +40 -0
- package/dist/classes/callbacks/PostAmbushStarted.js +40 -0
- package/dist/classes/callbacks/PostBombExploded.js +24 -0
- package/dist/classes/callbacks/PostBombInitFilter.js +21 -0
- package/dist/classes/callbacks/PostBombInitLate.js +31 -0
- package/dist/classes/callbacks/PostBombRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostBombUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostBoneSwing.js +53 -0
- package/dist/classes/callbacks/PostCollectibleEmpty.js +50 -0
- package/dist/classes/callbacks/PostCursedTeleport.js +119 -0
- package/dist/classes/callbacks/PostCustomRevive.js +17 -0
- package/dist/classes/callbacks/PostDiceRoomActivated.js +50 -0
- package/dist/classes/callbacks/PostDoorRender.js +24 -0
- package/dist/classes/callbacks/PostDoorUpdate.js +24 -0
- package/dist/classes/callbacks/PostEffectInitFilter.js +21 -0
- package/dist/classes/callbacks/PostEffectInitLate.js +31 -0
- package/dist/classes/callbacks/PostEffectRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostEffectStateChanged.js +34 -0
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostEntityKillFilter.js +21 -0
- package/dist/classes/callbacks/PostEsauJr.js +12 -0
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +21 -0
- package/dist/classes/callbacks/PostFamiliarInitLate.js +31 -0
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +34 -0
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostFirstEsauJr.js +12 -0
- package/dist/classes/callbacks/PostFirstFlip.js +12 -0
- package/dist/classes/callbacks/PostFlip.js +12 -0
- package/dist/classes/callbacks/PostGameEndFilter.js +21 -0
- package/dist/classes/callbacks/PostGameStartedReordered.js +14 -0
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +14 -0
- package/dist/classes/callbacks/PostGreedModeWave.js +35 -0
- package/dist/classes/callbacks/PostGridEntityBroken.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCollision.js +28 -0
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +24 -0
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +18 -0
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +14 -0
- package/dist/classes/callbacks/PostGridEntityInit.js +14 -0
- package/dist/classes/callbacks/PostGridEntityRemove.js +19 -0
- package/dist/classes/callbacks/PostGridEntityRender.js +14 -0
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +14 -0
- package/dist/classes/callbacks/PostGridEntityUpdate.js +14 -0
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +43 -0
- package/dist/classes/callbacks/PostItemDischarge.js +122 -0
- package/dist/classes/callbacks/PostItemPickup.js +14 -0
- package/dist/classes/callbacks/PostKeyboardChanged.js +46 -0
- package/dist/classes/callbacks/PostKnifeInitFilter.js +21 -0
- package/dist/classes/callbacks/PostKnifeInitLate.js +31 -0
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserInitFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserInitLate.js +31 -0
- package/dist/classes/callbacks/PostLaserRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCDeathFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCInitFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCInitLate.js +31 -0
- package/dist/classes/callbacks/PostNPCRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCStateChanged.js +34 -0
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostNewLevelReordered.js +14 -0
- package/dist/classes/callbacks/PostNewRoomEarly.js +74 -0
- package/dist/classes/callbacks/PostNewRoomReordered.js +14 -0
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +14 -0
- package/dist/classes/callbacks/PostPickupChanged.js +14 -0
- package/dist/classes/callbacks/PostPickupCollect.js +38 -0
- package/dist/classes/callbacks/PostPickupInitFilter.js +21 -0
- package/dist/classes/callbacks/PostPickupInitFirst.js +33 -0
- package/dist/classes/callbacks/PostPickupInitLate.js +31 -0
- package/dist/classes/callbacks/PostPickupRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +29 -0
- package/dist/classes/callbacks/PostPickupStateChanged.js +34 -0
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostPitRender.js +24 -0
- package/dist/classes/callbacks/PostPitUpdate.js +24 -0
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +47 -0
- package/dist/classes/callbacks/PostPlayerChangeStat.js +79 -0
- package/dist/classes/callbacks/PostPlayerChangeType.js +36 -0
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +14 -0
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +14 -0
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +83 -0
- package/dist/classes/callbacks/PostPlayerInitFirst.js +41 -0
- package/dist/classes/callbacks/PostPlayerInitLate.js +33 -0
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +14 -0
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +14 -0
- package/dist/classes/callbacks/PostPoopRender.js +24 -0
- package/dist/classes/callbacks/PostPoopUpdate.js +24 -0
- package/dist/classes/callbacks/PostPressurePlateRender.js +24 -0
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +24 -0
- package/dist/classes/callbacks/PostProjectileInitFilter.js +21 -0
- package/dist/classes/callbacks/PostProjectileInitLate.js +31 -0
- package/dist/classes/callbacks/PostProjectileKill.js +52 -0
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostPurchase.js +90 -0
- package/dist/classes/callbacks/PostRockRender.js +24 -0
- package/dist/classes/callbacks/PostRockUpdate.js +24 -0
- package/dist/classes/callbacks/PostRoomClearChanged.js +46 -0
- package/dist/classes/callbacks/PostSacrifice.js +36 -0
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +14 -0
- package/dist/classes/callbacks/PostSlotCollision.js +25 -0
- package/dist/classes/callbacks/PostSlotDestroyed.js +14 -0
- package/dist/classes/callbacks/PostSlotInit.js +14 -0
- package/dist/classes/callbacks/PostSlotRender.js +14 -0
- package/dist/classes/callbacks/PostSlotUpdate.js +14 -0
- package/dist/classes/callbacks/PostSpikesRender.js +24 -0
- package/dist/classes/callbacks/PostSpikesUpdate.js +24 -0
- package/dist/classes/callbacks/PostTNTRender.js +24 -0
- package/dist/classes/callbacks/PostTNTUpdate.js +24 -0
- package/dist/classes/callbacks/PostTearInitFilter.js +21 -0
- package/dist/classes/callbacks/PostTearInitLate.js +31 -0
- package/dist/classes/callbacks/PostTearInitVeryLate.js +35 -0
- package/dist/classes/callbacks/PostTearKill.js +52 -0
- package/dist/classes/callbacks/PostTearRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostTearUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostTransformation.js +47 -0
- package/dist/classes/callbacks/PostTrinketBreak.js +70 -0
- package/dist/classes/callbacks/PostUsePillFilter.js +76 -0
- package/dist/classes/callbacks/PreBerserkDeath.js +41 -0
- package/dist/classes/callbacks/PreBombCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreCustomRevive.js +14 -0
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +24 -0
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreGetPedestal.js +46 -0
- package/dist/classes/callbacks/PreItemPickup.js +14 -0
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +19 -0
- package/dist/classes/callbacks/PreNewLevel.js +51 -0
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +26 -0
- package/dist/classes/callbacks/PreTearCollisionFilter.js +19 -0
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +359 -0
- package/dist/classes/features/callbackLogic/CustomRevive.js +170 -0
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +70 -0
- package/dist/classes/features/callbackLogic/FlipDetection.js +61 -0
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +220 -0
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +62 -0
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +35 -0
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +147 -0
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +68 -0
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +43 -0
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +193 -0
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +109 -0
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +95 -0
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +48 -0
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +52 -0
- package/dist/classes/features/other/CharacterHealthConversion.js +112 -0
- package/dist/classes/features/other/CharacterStats.js +68 -0
- package/dist/classes/features/other/CollectibleItemPoolType.js +75 -0
- package/dist/classes/features/other/CustomHotkeys.js +144 -0
- package/dist/classes/features/other/CustomItemPools.js +128 -0
- package/dist/classes/features/other/CustomPickups.js +118 -0
- package/dist/classes/features/other/CustomStages.js +471 -0
- package/dist/classes/features/other/CustomTrapdoors.js +596 -0
- package/dist/classes/features/other/DebugDisplay.js +699 -0
- package/dist/classes/features/other/DeployJSONRoom.js +301 -0
- package/dist/classes/features/other/DisableAllSound.js +90 -0
- package/dist/classes/features/other/DisableInputs.js +249 -0
- package/dist/classes/features/other/EdenStartingStatsHealth.js +197 -0
- package/dist/classes/features/other/ExtraConsoleCommands.js +292 -0
- package/dist/classes/features/other/FadeInRemover.js +67 -0
- package/dist/classes/features/other/FastReset.js +88 -0
- package/dist/classes/features/other/FlyingDetection.js +64 -0
- package/dist/classes/features/other/ForgottenSwitch.js +43 -0
- package/dist/classes/features/other/ItemPoolDetection.js +187 -0
- package/dist/classes/features/other/ModdedElementDetection.js +399 -0
- package/dist/classes/features/other/ModdedElementSets.js +1251 -0
- package/dist/classes/features/other/NoSirenSteal.js +88 -0
- package/dist/classes/features/other/Pause.js +197 -0
- package/dist/classes/features/other/PersistentEntities.js +168 -0
- package/dist/classes/features/other/PickupIndexCreation.js +229 -0
- package/dist/classes/features/other/PlayerCollectibleTracking.js +102 -0
- package/dist/classes/features/other/PonyDetection.js +86 -0
- package/dist/classes/features/other/PressInput.js +71 -0
- package/dist/classes/features/other/PreventChildEntities.js +60 -0
- package/dist/classes/features/other/PreventGridEntityRespawn.js +159 -0
- package/dist/classes/features/other/RerunDetection.js +69 -0
- package/dist/classes/features/other/RoomClearFrame.js +94 -0
- package/dist/classes/features/other/RoomHistory.js +196 -0
- package/dist/classes/features/other/RunInNFrames.js +323 -0
- package/dist/classes/features/other/RunNextRoom.js +53 -0
- package/dist/classes/features/other/RunNextRun.js +60 -0
- package/dist/classes/features/other/SaveDataManager.js +383 -0
- package/dist/classes/features/other/SpawnRockAltRewards.js +469 -0
- package/dist/classes/features/other/StageHistory.js +244 -0
- package/dist/classes/features/other/StartAmbush.js +62 -0
- package/dist/classes/features/other/TaintedLazarusPlayers.js +115 -0
- package/dist/classes/features/other/UnlockAchievementsDetection.js +60 -0
- package/dist/classes/features/other/customStages/backdrop.js +195 -0
- package/dist/classes/features/other/customStages/constants.js +19 -0
- package/dist/classes/features/other/customStages/gridEntities.js +177 -0
- package/dist/classes/features/other/customStages/shadows.js +67 -0
- package/dist/classes/features/other/customStages/streakText.js +222 -0
- package/dist/classes/features/other/customStages/utils.js +65 -0
- package/dist/classes/features/other/customStages/v.js +27 -0
- package/dist/classes/features/other/customStages/versusScreen.js +227 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +25 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +25 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +23 -0
- package/dist/classes/features/other/debugDisplay/utils.js +13 -0
- package/dist/classes/features/other/extraConsoleCommands/commands.js +1598 -0
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +135 -0
- package/dist/classes/features/other/extraConsoleCommands/v.js +30 -0
- package/dist/classes/features/other/saveDataManager/constants.js +4 -0
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +106 -0
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +69 -0
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +69 -0
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +46 -0
- package/dist/classes/private/CustomCallback.js +59 -0
- package/dist/classes/private/Feature.js +39 -0
- package/dist/core/cachedClasses.js +61 -0
- package/dist/core/constants.js +289 -0
- package/dist/core/constantsFirstLast.js +98 -0
- package/dist/core/constantsVanilla.js +131 -0
- package/dist/core/upgradeMod.js +71 -0
- package/dist/customStageMetadata.json +1 -0
- package/dist/data/itempools.json +16625 -0
- package/dist/decorators.js +21 -0
- package/dist/enums/AmbushType.js +9 -0
- package/dist/enums/CornerType.js +11 -0
- package/dist/enums/HealthType.js +20 -0
- package/dist/enums/ISCFeature.js +65 -0
- package/dist/enums/LadderSubTypeCustom.js +20 -0
- package/dist/enums/ModCallbackCustom.js +2477 -0
- package/dist/enums/MysteriousPaperEffect.js +16 -0
- package/dist/enums/PlayerStat.js +37 -0
- package/dist/enums/PocketItemType.js +13 -0
- package/dist/enums/RockAltType.js +23 -0
- package/dist/enums/SaveDataKey.js +14 -0
- package/dist/enums/SerializationType.js +10 -0
- package/dist/enums/SlotDestructionType.js +22 -0
- package/dist/enums/private/GridEntityTypeCustom.js +10 -0
- package/dist/enums/private/SerializationBrand.js +42 -0
- package/dist/enums/private/StageTravelState.js +13 -0
- package/dist/enums/private/TrapdoorAnimation.js +9 -0
- package/dist/enums/private/UIStreakAnimation.js +10 -0
- package/dist/features.js +150 -0
- package/dist/functions/ambush.js +26 -0
- package/dist/functions/array.js +586 -0
- package/dist/functions/arrayLua.js +81 -0
- package/dist/functions/benchmark.js +36 -0
- package/dist/functions/bitSet128.js +64 -0
- package/dist/functions/bitwise.js +82 -0
- package/dist/functions/bombs.js +14 -0
- package/dist/functions/bosses.js +238 -0
- package/dist/functions/cards.js +164 -0
- package/dist/functions/challenges.js +117 -0
- package/dist/functions/characters.js +182 -0
- package/dist/functions/charge.js +251 -0
- package/dist/functions/chargeBar.js +54 -0
- package/dist/functions/collectibleTag.js +24 -0
- package/dist/functions/collectibles.js +581 -0
- package/dist/functions/color.js +88 -0
- package/dist/functions/console.js +18 -0
- package/dist/functions/curses.js +37 -0
- package/dist/functions/debugFunctions.js +108 -0
- package/dist/functions/decorators.js +113 -0
- package/dist/functions/deepCopy.js +406 -0
- package/dist/functions/deepCopyTests.js +361 -0
- package/dist/functions/dimensions.js +30 -0
- package/dist/functions/direction.js +78 -0
- package/dist/functions/doors.js +524 -0
- package/dist/functions/easing.js +327 -0
- package/dist/functions/effects.js +14 -0
- package/dist/functions/emptyRoom.js +79 -0
- package/dist/functions/entities.js +529 -0
- package/dist/functions/entitiesSpecific.js +582 -0
- package/dist/functions/entityTypes.js +9 -0
- package/dist/functions/enums.js +244 -0
- package/dist/functions/external.js +59 -0
- package/dist/functions/familiars.js +136 -0
- package/dist/functions/flag.js +146 -0
- package/dist/functions/frames.js +166 -0
- package/dist/functions/globals.js +291 -0
- package/dist/functions/gridEntities.js +990 -0
- package/dist/functions/gridEntitiesSpecific.js +456 -0
- package/dist/functions/gridIndex.js +35 -0
- package/dist/functions/hash.js +75 -0
- package/dist/functions/hex.js +57 -0
- package/dist/functions/input.js +185 -0
- package/dist/functions/isaacAPIClass.js +157 -0
- package/dist/functions/itemPool.js +118 -0
- package/dist/functions/jsonHelpers.js +73 -0
- package/dist/functions/jsonRoom.js +184 -0
- package/dist/functions/kColor.js +89 -0
- package/dist/functions/language.js +16 -0
- package/dist/functions/level.js +66 -0
- package/dist/functions/levelGrid.js +497 -0
- package/dist/functions/log.js +86 -0
- package/dist/functions/logEntities.js +308 -0
- package/dist/functions/logMisc.js +510 -0
- package/dist/functions/map.js +121 -0
- package/dist/functions/math.js +149 -0
- package/dist/functions/merge.js +159 -0
- package/dist/functions/mergeTests.js +313 -0
- package/dist/functions/minimap.js +204 -0
- package/dist/functions/modFeatures.js +39 -0
- package/dist/functions/newArray.js +30 -0
- package/dist/functions/nextStage.js +169 -0
- package/dist/functions/npcDataStructures.js +146 -0
- package/dist/functions/npcs.js +132 -0
- package/dist/functions/pickupVariants.js +63 -0
- package/dist/functions/pickups.js +168 -0
- package/dist/functions/pickupsSpecific.js +376 -0
- package/dist/functions/pills.js +200 -0
- package/dist/functions/playerCenter.js +53 -0
- package/dist/functions/playerCollectibles.js +300 -0
- package/dist/functions/playerDataStructures.js +145 -0
- package/dist/functions/playerEffects.js +63 -0
- package/dist/functions/playerHealth.js +604 -0
- package/dist/functions/playerIndex.js +186 -0
- package/dist/functions/playerTrinkets.js +149 -0
- package/dist/functions/players.js +471 -0
- package/dist/functions/pocketItems.js +165 -0
- package/dist/functions/positionVelocity.js +158 -0
- package/dist/functions/pressurePlate.js +26 -0
- package/dist/functions/projectiles.js +57 -0
- package/dist/functions/random.js +90 -0
- package/dist/functions/readOnly.js +33 -0
- package/dist/functions/render.js +36 -0
- package/dist/functions/revive.js +151 -0
- package/dist/functions/rng.js +140 -0
- package/dist/functions/rockAlt.js +50 -0
- package/dist/functions/roomData.js +155 -0
- package/dist/functions/roomGrid.js +97 -0
- package/dist/functions/roomShape.js +143 -0
- package/dist/functions/roomShapeWalls.js +187 -0
- package/dist/functions/roomTransition.js +43 -0
- package/dist/functions/rooms.js +782 -0
- package/dist/functions/run.js +121 -0
- package/dist/functions/seeds.js +22 -0
- package/dist/functions/serialization.js +98 -0
- package/dist/functions/set.js +215 -0
- package/dist/functions/slots.js +41 -0
- package/dist/functions/sort.js +158 -0
- package/dist/functions/sound.js +45 -0
- package/dist/functions/spawnCollectible.js +112 -0
- package/dist/functions/sprites.js +130 -0
- package/dist/functions/stage.js +540 -0
- package/dist/functions/stats.js +104 -0
- package/dist/functions/storyBosses.js +63 -0
- package/dist/functions/string.js +194 -0
- package/dist/functions/table.js +162 -0
- package/dist/functions/tears.js +128 -0
- package/dist/functions/transformations.js +89 -0
- package/dist/functions/trinketGive.js +145 -0
- package/dist/functions/trinkets.js +213 -0
- package/dist/functions/tstlClass.js +97 -0
- package/dist/functions/types.js +225 -0
- package/dist/functions/ui.js +148 -0
- package/dist/functions/utils.d.ts +4 -1
- package/dist/functions/utils.d.ts.map +1 -1
- package/dist/functions/utils.js +195 -0
- package/dist/functions/utils.lua +6 -2
- package/dist/functions/vector.js +150 -0
- package/dist/functions/versusScreen.js +58 -0
- package/dist/functions/weighted.js +57 -0
- package/dist/index.js +219 -0
- package/dist/index.rollup.d.ts +4 -1
- package/dist/indexLua.js +220 -0
- package/dist/interfaces/ChargeBarSprites.js +2 -0
- package/dist/interfaces/Corner.js +2 -0
- package/dist/interfaces/CustomStageTSConfig.js +2 -0
- package/dist/interfaces/GridEntityCustomData.js +2 -0
- package/dist/interfaces/JSONRoomsFile.js +2 -0
- package/dist/interfaces/PlayerHealth.js +2 -0
- package/dist/interfaces/PlayerStats.js +4 -0
- package/dist/interfaces/PocketItemDescription.js +2 -0
- package/dist/interfaces/RoomDescription.js +2 -0
- package/dist/interfaces/SaveData.js +98 -0
- package/dist/interfaces/StageHistoryEntry.js +2 -0
- package/dist/interfaces/TSTLClassMetatable.js +2 -0
- package/dist/interfaces/TrinketSituation.js +2 -0
- package/dist/interfaces/private/AddCallbackParametersCustom.js +4 -0
- package/dist/interfaces/private/CustomStage.js +2 -0
- package/dist/interfaces/private/CustomTrapdoorDescription.js +2 -0
- package/dist/interfaces/private/ModUpgradedInterface.js +2 -0
- package/dist/isaacscript-common.lua +7 -3
- package/dist/maps/PHDPillConversionsMap.js +23 -0
- package/dist/maps/cardNameToTypeMap.js +211 -0
- package/dist/maps/characterNameToTypeMap.js +91 -0
- package/dist/maps/collectibleNameToTypeMap.js +19 -0
- package/dist/maps/defaultPlayerStatMap.js +17 -0
- package/dist/maps/entityTypeVariantToBossIDMap.js +11 -0
- package/dist/maps/falsePHDPillConversionsMap.js +37 -0
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +32 -0
- package/dist/maps/gridEntityXMLMap.js +133 -0
- package/dist/maps/itemPoolTypeToItemPoolName.js +38 -0
- package/dist/maps/keyboardToStringMap.js +71 -0
- package/dist/maps/pillNameToEffectMap.js +91 -0
- package/dist/maps/roomNameToTypeMap.js +43 -0
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +17 -0
- package/dist/maps/transformationNameToPlayerFormMap.js +35 -0
- package/dist/maps/trinketNameToTypeMap.js +19 -0
- package/dist/objects/LRoomShapeToRectangles.js +43 -0
- package/dist/objects/backdropTypeToRockAltType.js +68 -0
- package/dist/objects/batteryNames.js +13 -0
- package/dist/objects/bombNames.js +17 -0
- package/dist/objects/bossIDToEntityTypeVariant.js +228 -0
- package/dist/objects/bossNamePNGFileNames.js +120 -0
- package/dist/objects/bossNames.js +119 -0
- package/dist/objects/bossPortraitPNGFileNames.js +123 -0
- package/dist/objects/cardDescriptions.js +106 -0
- package/dist/objects/cardNames.js +106 -0
- package/dist/objects/challengeBosses.js +60 -0
- package/dist/objects/challengeCharacters.js +58 -0
- package/dist/objects/challengeCollectibleTypes.js +255 -0
- package/dist/objects/challengeNames.js +54 -0
- package/dist/objects/challengeTrinketType.js +58 -0
- package/dist/objects/characterDamageMultipliers.js +49 -0
- package/dist/objects/characterNames.js +48 -0
- package/dist/objects/characterSpritePNGFileNames.js +50 -0
- package/dist/objects/characterStartingCollectibleTypes.js +105 -0
- package/dist/objects/characterStartingTrinketTypes.js +90 -0
- package/dist/objects/chestNames.js +20 -0
- package/dist/objects/coinNames.js +16 -0
- package/dist/objects/coinSubTypeToValue.js +15 -0
- package/dist/objects/collectibleDescriptions.js +742 -0
- package/dist/objects/collectibleNames.js +745 -0
- package/dist/objects/colors.js +26 -0
- package/dist/objects/directionNames.js +11 -0
- package/dist/objects/directionToDegrees.js +11 -0
- package/dist/objects/directionToMoveAction.js +11 -0
- package/dist/objects/directionToShootAction.js +11 -0
- package/dist/objects/directionToVector.js +13 -0
- package/dist/objects/doorSlotFlagToDoorSlot.js +15 -0
- package/dist/objects/doorSlotToDirection.js +15 -0
- package/dist/objects/doorSlotToDoorSlotFlag.js +15 -0
- package/dist/objects/gridEntityTypeToANM2Name.js +37 -0
- package/dist/objects/heartNames.js +21 -0
- package/dist/objects/isaacAPIClassTypeToBrand.js +12 -0
- package/dist/objects/isaacAPIClassTypeToFunctions.js +46 -0
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +57 -0
- package/dist/objects/kColors.js +27 -0
- package/dist/objects/keyNames.js +13 -0
- package/dist/objects/languageNames.js +13 -0
- package/dist/objects/oppositeDoorSlots.js +15 -0
- package/dist/objects/pillEffectClasses.js +57 -0
- package/dist/objects/pillEffectNames.js +57 -0
- package/dist/objects/pillEffectTypeToPillEffects.js +23 -0
- package/dist/objects/pillEffectTypes.js +57 -0
- package/dist/objects/playerNamePNGFileNames.js +57 -0
- package/dist/objects/playerPortraitPNGFileNames.js +54 -0
- package/dist/objects/roomShapeBounds.js +48 -0
- package/dist/objects/roomShapeCorners.js +330 -0
- package/dist/objects/roomShapeLayoutSizes.js +41 -0
- package/dist/objects/roomShapeToBottomRightPosition.js +25 -0
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +111 -0
- package/dist/objects/roomShapeToDoorSlots.js +72 -0
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +118 -0
- package/dist/objects/roomShapeToGridWidth.js +20 -0
- package/dist/objects/roomShapeToTopLeftPosition.js +26 -0
- package/dist/objects/roomShapeVolumes.js +32 -0
- package/dist/objects/roomTypeNames.js +35 -0
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +35 -0
- package/dist/objects/sackNames.js +11 -0
- package/dist/objects/slotNames.js +26 -0
- package/dist/objects/stageIDNames.js +43 -0
- package/dist/objects/stageToMusic.js +91 -0
- package/dist/objects/stageToStageID.js +117 -0
- package/dist/objects/stageTypeSuffixes.js +14 -0
- package/dist/objects/transformationNames.js +20 -0
- package/dist/objects/trinketDescriptions.js +199 -0
- package/dist/objects/trinketNames.js +202 -0
- package/dist/objects/versusScreenBackgroundColors.js +46 -0
- package/dist/objects/versusScreenDirtSpotColors.js +46 -0
- package/dist/patchErrorFunctions.js +65 -0
- package/dist/serialization.js +21 -0
- package/dist/sets/LRoomShapesSet.js +11 -0
- package/dist/sets/bigRoomShapesSet.js +14 -0
- package/dist/sets/bossSets.js +465 -0
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +18 -0
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +9 -0
- package/dist/sets/charactersWithFreeDevilDealsSet.js +6 -0
- package/dist/sets/charactersWithNoRedHeartsSet.js +19 -0
- package/dist/sets/charactersWithNoSoulHeartsSet.js +16 -0
- package/dist/sets/consoleCommandsSet.js +64 -0
- package/dist/sets/entitiesWithArmorSet.js +59 -0
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +15 -0
- package/dist/sets/itemConfigCardTypesForCards.js +14 -0
- package/dist/sets/lostStyleCharactersSet.js +16 -0
- package/dist/sets/mineShaftRoomSubTypesSet.js +12 -0
- package/dist/sets/narrowRoomShapesSet.js +11 -0
- package/dist/sets/poopGridEntityXMLTypesSet.js +16 -0
- package/dist/sets/redHeartSubTypesSet.js +10 -0
- package/dist/sets/repentanceBossIDsSet.js +30 -0
- package/dist/sets/sinEntityTypesSet.js +14 -0
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +15 -0
- package/dist/shaderCrashFix.js +24 -0
- package/dist/shouldFire.js +226 -0
- package/dist/types/AddSubtract.js +2 -0
- package/dist/types/AllButFirst.js +2 -0
- package/dist/types/AllButLast.js +2 -0
- package/dist/types/AnyClass.js +2 -0
- package/dist/types/AnyEntity.js +2 -0
- package/dist/types/AnyFunction.js +2 -0
- package/dist/types/AnyGridEntity.js +2 -0
- package/dist/types/CompositionTypeSatisfiesEnum.js +11 -0
- package/dist/types/ConversionHeartSubType.js +2 -0
- package/dist/types/Decrement.js +2 -0
- package/dist/types/ERange.js +2 -0
- package/dist/types/EntityID.js +2 -0
- package/dist/types/FunctionTuple.js +2 -0
- package/dist/types/GridEntityID.js +2 -0
- package/dist/types/HasFunction.js +2 -0
- package/dist/types/IRange.js +2 -0
- package/dist/types/Immutable.js +2 -0
- package/dist/types/Increment.js +2 -0
- package/dist/types/LowercaseKeys.js +2 -0
- package/dist/types/NaturalNumbersLessThan.js +2 -0
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +2 -0
- package/dist/types/PickingUpItem.js +44 -0
- package/dist/types/PickupIndex.js +2 -0
- package/dist/types/PlayerIndex.js +2 -0
- package/dist/types/PossibleStatType.js +2 -0
- package/dist/types/PublicInterface.js +2 -0
- package/dist/types/ReadonlyMap.js +6 -0
- package/dist/types/ReadonlyRecord.js +2 -0
- package/dist/types/ReadonlySet.js +6 -0
- package/dist/types/StartsWithLowercase.js +2 -0
- package/dist/types/StartsWithUppercase.js +2 -0
- package/dist/types/TSTLClass.js +2 -0
- package/dist/types/Tuple.js +2 -0
- package/dist/types/TupleKeys.js +2 -0
- package/dist/types/TupleToIntersection.js +2 -0
- package/dist/types/TupleToUnion.js +2 -0
- package/dist/types/TupleWithLengthBetween.js +22 -0
- package/dist/types/TupleWithMaxLength.js +27 -0
- package/dist/types/UnionToIntersection.js +2 -0
- package/dist/types/UppercaseKeys.js +2 -0
- package/dist/types/WeightedArray.js +2 -0
- package/dist/types/WidenLiteral.js +2 -0
- package/dist/types/Writable.js +2 -0
- package/dist/types/private/CallbackTuple.js +2 -0
- package/dist/types/private/ModUpgradedWithFeatures.js +2 -0
- package/package.json +1 -1
- package/src/functions/utils.ts +6 -2
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRaglingDeathPatch = exports.isDyingEggyWithNoSpidersLeft = exports.isDyingDump = exports.isDaddyLongLegsChildStompEntity = exports.isAliveExceptionNPC = exports.getAliveNPCs = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const constants_1 = require("../core/constants");
|
|
6
|
+
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
7
|
+
const entitiesSpecific_1 = require("./entitiesSpecific");
|
|
8
|
+
/**
|
|
9
|
+
* Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
|
|
10
|
+
* doors open.
|
|
11
|
+
*/
|
|
12
|
+
const NON_ALIVE_NPCS_TYPE_VARIANT = new ReadonlySet_1.ReadonlySet([
|
|
13
|
+
`${isaac_typescript_definitions_1.EntityType.VIS}.${isaac_typescript_definitions_1.VisVariant.CHUBBER_PROJECTILE}`,
|
|
14
|
+
`${isaac_typescript_definitions_1.EntityType.DEATH}.${isaac_typescript_definitions_1.DeathVariant.DEATH_SCYTHE}`,
|
|
15
|
+
`${isaac_typescript_definitions_1.EntityType.PEEP}.${isaac_typescript_definitions_1.PeepVariant.PEEP_EYE}`,
|
|
16
|
+
`${isaac_typescript_definitions_1.EntityType.PEEP}.${isaac_typescript_definitions_1.PeepVariant.BLOAT_EYE}`,
|
|
17
|
+
`${isaac_typescript_definitions_1.EntityType.BEGOTTEN}.${isaac_typescript_definitions_1.BegottenVariant.BEGOTTEN_CHAIN}`,
|
|
18
|
+
`${isaac_typescript_definitions_1.EntityType.MAMA_GURDY}.${isaac_typescript_definitions_1.MamaGurdyVariant.LEFT_HAND}`,
|
|
19
|
+
`${isaac_typescript_definitions_1.EntityType.MAMA_GURDY}.${isaac_typescript_definitions_1.MamaGurdyVariant.RIGHT_HAND}`,
|
|
20
|
+
`${isaac_typescript_definitions_1.EntityType.BIG_HORN}.${isaac_typescript_definitions_1.BigHornVariant.SMALL_HOLE}`,
|
|
21
|
+
`${isaac_typescript_definitions_1.EntityType.BIG_HORN}.${isaac_typescript_definitions_1.BigHornVariant.BIG_HOLE}`,
|
|
22
|
+
`${isaac_typescript_definitions_1.EntityType.DARK_ESAU}.${isaac_typescript_definitions_1.DarkEsauVariant.DARK_ESAU}`,
|
|
23
|
+
`${isaac_typescript_definitions_1.EntityType.DARK_ESAU}.${isaac_typescript_definitions_1.DarkEsauVariant.PIT}`, // 866.1
|
|
24
|
+
]);
|
|
25
|
+
/**
|
|
26
|
+
* Used to filter out certain NPCs when determining of an NPC is "alive" and/or should keep the
|
|
27
|
+
* doors open.
|
|
28
|
+
*/
|
|
29
|
+
const NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE = new ReadonlySet_1.ReadonlySet([
|
|
30
|
+
`${isaac_typescript_definitions_1.EntityType.CHARGER}.${isaac_typescript_definitions_1.ChargerVariant.CHARGER}.${isaac_typescript_definitions_1.ChargerSubType.MY_SHADOW}`,
|
|
31
|
+
`${isaac_typescript_definitions_1.EntityType.MOTHER}.${isaac_typescript_definitions_1.MotherVariant.MOTHER_1}.${isaac_typescript_definitions_1.MotherSubType.PHASE_2}`, // 912
|
|
32
|
+
]);
|
|
33
|
+
/**
|
|
34
|
+
* Helper function to get all of the non-dead NPCs in the room.
|
|
35
|
+
*
|
|
36
|
+
* This function will not include NPCs on an internal blacklist, such as Death's scythes or Big Horn
|
|
37
|
+
* holes.
|
|
38
|
+
*
|
|
39
|
+
* @param entityType Optional. If specified, will only get the NPCs that match the type. Default is
|
|
40
|
+
* -1, which matches every type.
|
|
41
|
+
* @param variant Optional. If specified, will only get the NPCs that match the variant. Default is
|
|
42
|
+
* -1, which matches every variant.
|
|
43
|
+
* @param subType Optional. If specified, will only get the NPCs that match the sub-type. Default is
|
|
44
|
+
* -1, which matches every sub-type.
|
|
45
|
+
* @param ignoreFriendly Optional. Default is false.
|
|
46
|
+
*/
|
|
47
|
+
function getAliveNPCs(entityType = -1, variant = -1, subType = -1, ignoreFriendly = false) {
|
|
48
|
+
const npcs = (0, entitiesSpecific_1.getNPCs)(entityType, variant, subType, ignoreFriendly);
|
|
49
|
+
return npcs.filter((npc) => !npc.IsDead() && !isAliveExceptionNPC(npc));
|
|
50
|
+
}
|
|
51
|
+
exports.getAliveNPCs = getAliveNPCs;
|
|
52
|
+
/**
|
|
53
|
+
* Checks for specific NPCs that have "CanShutDoors" set to true naturally by the game, but should
|
|
54
|
+
* not actually keep the doors closed (like Death's scythes).
|
|
55
|
+
*/
|
|
56
|
+
function isAliveExceptionNPC(npc) {
|
|
57
|
+
const entityTypeVariant = `${npc.Type}.${npc.Variant}`;
|
|
58
|
+
if (NON_ALIVE_NPCS_TYPE_VARIANT.has(entityTypeVariant)) {
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
const entityTypeVariantSubType = `${npc.Type}.${npc.Variant}.${npc.SubType}`;
|
|
62
|
+
if (NON_ALIVE_NPCS_TYPE_VARIANT_SUB_TYPE.has(entityTypeVariantSubType)) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
// EntityType.HOPPER (29)
|
|
66
|
+
// HopperVariant.EGGY (2)
|
|
67
|
+
if (isDyingEggyWithNoSpidersLeft(npc)) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
// EntityType.DADDY_LONG_LEGS (101)
|
|
71
|
+
if (isDaddyLongLegsChildStompEntity(npc)) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
// EntityType.RAGLING (256)
|
|
75
|
+
if (isRaglingDeathPatch(npc)) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
// EntityType.DUMP (876)
|
|
79
|
+
if (isDyingDump(npc)) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
exports.isAliveExceptionNPC = isAliveExceptionNPC;
|
|
85
|
+
/**
|
|
86
|
+
* Helper function to distinguish between a normal Daddy Long Legs / Triachnid and the child entity
|
|
87
|
+
* that is spawned when the boss does the multi-stomp attack.
|
|
88
|
+
*
|
|
89
|
+
* When this attack occurs, four extra copies of Daddy Long Legs will be spawned with the same
|
|
90
|
+
* entity type, variant, and sub-type. The `Entity.Parent` field will be undefined in this case, so
|
|
91
|
+
* the way to tell them apart is to check for a non-undefined `Entity.SpawnerEntity` field.
|
|
92
|
+
*/
|
|
93
|
+
function isDaddyLongLegsChildStompEntity(npc) {
|
|
94
|
+
return (npc.Type === isaac_typescript_definitions_1.EntityType.DADDY_LONG_LEGS && npc.SpawnerEntity !== undefined);
|
|
95
|
+
}
|
|
96
|
+
exports.isDaddyLongLegsChildStompEntity = isDaddyLongLegsChildStompEntity;
|
|
97
|
+
/**
|
|
98
|
+
* Helper function to detect the custom death state of a Dump. When Dumps die, they go to
|
|
99
|
+
* `NPCState.SPECIAL`, spit out their head, and then slowly fade away while shooting a burst of
|
|
100
|
+
* tears.
|
|
101
|
+
*/
|
|
102
|
+
function isDyingDump(npc) {
|
|
103
|
+
return (npc.Type === isaac_typescript_definitions_1.EntityType.DUMP &&
|
|
104
|
+
npc.Variant === isaac_typescript_definitions_1.DumpVariant.DUMP &&
|
|
105
|
+
npc.State === isaac_typescript_definitions_1.NPCState.SPECIAL);
|
|
106
|
+
}
|
|
107
|
+
exports.isDyingDump = isDyingDump;
|
|
108
|
+
/**
|
|
109
|
+
* Helper function to detect the custom death state of an Eggy. Eggies are never actually marked
|
|
110
|
+
* dead by the game. Instead, when Eggies take fatal damage, they go into NPCState.STATE_SUICIDE and
|
|
111
|
+
* spawn 14 Swarm Spiders while their StateFrame ticks upwards.
|
|
112
|
+
*/
|
|
113
|
+
function isDyingEggyWithNoSpidersLeft(npc) {
|
|
114
|
+
return (npc.Type === isaac_typescript_definitions_1.EntityType.HOPPER &&
|
|
115
|
+
npc.Variant === isaac_typescript_definitions_1.HopperVariant.EGGY &&
|
|
116
|
+
npc.State === isaac_typescript_definitions_1.NPCState.SUICIDE &&
|
|
117
|
+
npc.StateFrame >= constants_1.EGGY_STATE_FRAME_OF_FINAL_SPIDER);
|
|
118
|
+
}
|
|
119
|
+
exports.isDyingEggyWithNoSpidersLeft = isDyingEggyWithNoSpidersLeft;
|
|
120
|
+
/**
|
|
121
|
+
* Helper function to detect the custom death state of a Rag Man Ragling. When Rag Man Raglings die,
|
|
122
|
+
* they turn into a patch on the ground and can be revived by Rag Man at a later time. This causes
|
|
123
|
+
* them to show up as an "alive" enemy, so they should usually be filtered out of lists of alive
|
|
124
|
+
* enemies.
|
|
125
|
+
*/
|
|
126
|
+
function isRaglingDeathPatch(npc) {
|
|
127
|
+
return (npc.Type === isaac_typescript_definitions_1.EntityType.RAGLING &&
|
|
128
|
+
npc.Variant === isaac_typescript_definitions_1.RaglingVariant.RAG_MANS_RAGLING &&
|
|
129
|
+
// They go to `STATE_SPECIAL` when they are patches on the ground.
|
|
130
|
+
npc.State === isaac_typescript_definitions_1.NPCState.SPECIAL);
|
|
131
|
+
}
|
|
132
|
+
exports.isRaglingDeathPatch = isRaglingDeathPatch;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable sort-exports/sort-exports */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.isTrinket = exports.isCardPickup = exports.isCollectible = exports.isBattery = exports.isPill = exports.isSack = exports.isPoopPickup = exports.isBombPickup = exports.isKey = exports.isCoin = exports.isHeart = void 0;
|
|
5
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
6
|
+
/** For `PickupVariant.HEART` (10). */
|
|
7
|
+
function isHeart(pickup) {
|
|
8
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.HEART);
|
|
9
|
+
}
|
|
10
|
+
exports.isHeart = isHeart;
|
|
11
|
+
/** For `PickupVariant.COIN` (20). */
|
|
12
|
+
function isCoin(pickup) {
|
|
13
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.COIN);
|
|
14
|
+
}
|
|
15
|
+
exports.isCoin = isCoin;
|
|
16
|
+
/** For `PickupVariant.KEY` (30). */
|
|
17
|
+
function isKey(pickup) {
|
|
18
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.KEY);
|
|
19
|
+
}
|
|
20
|
+
exports.isKey = isKey;
|
|
21
|
+
/** For `PickupVariant.BOMB` (40). */
|
|
22
|
+
function isBombPickup(pickup) {
|
|
23
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.BOMB);
|
|
24
|
+
}
|
|
25
|
+
exports.isBombPickup = isBombPickup;
|
|
26
|
+
/** For `PickupVariant.POOP` (42). */
|
|
27
|
+
function isPoopPickup(pickup) {
|
|
28
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.POOP);
|
|
29
|
+
}
|
|
30
|
+
exports.isPoopPickup = isPoopPickup;
|
|
31
|
+
/** For `PickupVariant.SACK` (69). */
|
|
32
|
+
function isSack(pickup) {
|
|
33
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.SACK);
|
|
34
|
+
}
|
|
35
|
+
exports.isSack = isSack;
|
|
36
|
+
/** For `PickupVariant.PILL` (70). */
|
|
37
|
+
function isPill(pickup) {
|
|
38
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.PILL);
|
|
39
|
+
}
|
|
40
|
+
exports.isPill = isPill;
|
|
41
|
+
/** For `PickupVariant.LIL_BATTERY` (90). */
|
|
42
|
+
function isBattery(pickup) {
|
|
43
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP &&
|
|
44
|
+
pickup.Variant === isaac_typescript_definitions_1.PickupVariant.LIL_BATTERY);
|
|
45
|
+
}
|
|
46
|
+
exports.isBattery = isBattery;
|
|
47
|
+
/** For `PickupVariant.COLLECTIBLE` (100). */
|
|
48
|
+
function isCollectible(pickup) {
|
|
49
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP &&
|
|
50
|
+
pickup.Variant === isaac_typescript_definitions_1.PickupVariant.COLLECTIBLE);
|
|
51
|
+
}
|
|
52
|
+
exports.isCollectible = isCollectible;
|
|
53
|
+
/** For `PickupVariant.CARD` (300). */
|
|
54
|
+
function isCardPickup(pickup) {
|
|
55
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP && pickup.Variant === isaac_typescript_definitions_1.PickupVariant.CARD);
|
|
56
|
+
}
|
|
57
|
+
exports.isCardPickup = isCardPickup;
|
|
58
|
+
/** For `PickupVariant.TRINKET` (350). */
|
|
59
|
+
function isTrinket(pickup) {
|
|
60
|
+
return (pickup.Type === isaac_typescript_definitions_1.EntityType.PICKUP &&
|
|
61
|
+
pickup.Variant === isaac_typescript_definitions_1.PickupVariant.TRINKET);
|
|
62
|
+
}
|
|
63
|
+
exports.isTrinket = isTrinket;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeAllRedHearts = exports.isRedHeartSubType = exports.isRedHeart = exports.isChestVariant = exports.isChest = exports.getSackName = exports.getRedHearts = exports.getKeyName = exports.getHeartName = exports.getCoinValue = exports.getCoinName = exports.getChestName = exports.getBombName = exports.getBatteryName = void 0;
|
|
4
|
+
const constants_1 = require("../core/constants");
|
|
5
|
+
const batteryNames_1 = require("../objects/batteryNames");
|
|
6
|
+
const bombNames_1 = require("../objects/bombNames");
|
|
7
|
+
const chestNames_1 = require("../objects/chestNames");
|
|
8
|
+
const coinNames_1 = require("../objects/coinNames");
|
|
9
|
+
const coinSubTypeToValue_1 = require("../objects/coinSubTypeToValue");
|
|
10
|
+
const heartNames_1 = require("../objects/heartNames");
|
|
11
|
+
const keyNames_1 = require("../objects/keyNames");
|
|
12
|
+
const sackNames_1 = require("../objects/sackNames");
|
|
13
|
+
const redHeartSubTypesSet_1 = require("../sets/redHeartSubTypesSet");
|
|
14
|
+
const entities_1 = require("./entities");
|
|
15
|
+
const pickupVariants_1 = require("./pickupVariants");
|
|
16
|
+
const pickupsSpecific_1 = require("./pickupsSpecific");
|
|
17
|
+
/**
|
|
18
|
+
* Helper function to get the name of a battery, as listed in the "entities2.xml" file. Returns
|
|
19
|
+
* "Unknown" if the provided battery sub-type is not valid.
|
|
20
|
+
*
|
|
21
|
+
* This function only works for vanilla battery types.
|
|
22
|
+
*
|
|
23
|
+
* For example, `getBatteryName(BatterySubType.MICRO)` would return "Micro Battery".
|
|
24
|
+
*/
|
|
25
|
+
function getBatteryName(batterySubType) {
|
|
26
|
+
// Handle modded hearts.
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
28
|
+
return batteryNames_1.BATTERY_NAMES[batterySubType] ?? batteryNames_1.DEFAULT_BATTERY_NAME;
|
|
29
|
+
}
|
|
30
|
+
exports.getBatteryName = getBatteryName;
|
|
31
|
+
/**
|
|
32
|
+
* Helper function to get the name of a bomb, as listed in the "entities2.xml" file. Returns
|
|
33
|
+
* "Unknown" if the provided bomb sub-type is not valid.
|
|
34
|
+
*
|
|
35
|
+
* This function only works for vanilla bomb types.
|
|
36
|
+
*
|
|
37
|
+
* For example, `getBombName(BombSubType.DOUBLE_PACK)` would return "Double Bomb".
|
|
38
|
+
*/
|
|
39
|
+
function getBombName(bombSubType) {
|
|
40
|
+
// Handle modded bombs.
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
42
|
+
return bombNames_1.BOMB_NAMES[bombSubType] ?? bombNames_1.DEFAULT_BOMB_NAME;
|
|
43
|
+
}
|
|
44
|
+
exports.getBombName = getBombName;
|
|
45
|
+
/**
|
|
46
|
+
* Helper function to get the name of a chest, as listed in the "entities2.xml" file. Returns
|
|
47
|
+
* "Unknown" if the pickup variant was not a chest.
|
|
48
|
+
*
|
|
49
|
+
* This function only works for vanilla chest types.
|
|
50
|
+
*
|
|
51
|
+
* For example, `getChestName(PickupVariant.SPIKED_CHEST)` would return "Spiked Chest".
|
|
52
|
+
*/
|
|
53
|
+
function getChestName(pickupVariant) {
|
|
54
|
+
const chestNames = chestNames_1.CHEST_NAMES;
|
|
55
|
+
return chestNames[pickupVariant] ?? chestNames_1.DEFAULT_CHEST_NAME;
|
|
56
|
+
}
|
|
57
|
+
exports.getChestName = getChestName;
|
|
58
|
+
/**
|
|
59
|
+
* Helper function to get the name of a coin, as listed in the "entities2.xml" file. Returns
|
|
60
|
+
* "Unknown" if the provided coin sub-type is not valid.
|
|
61
|
+
*
|
|
62
|
+
* This function only works for vanilla chest types.
|
|
63
|
+
*
|
|
64
|
+
* For example, `getCoinName(CoinSubType.DOUBLE_PACK)` would return "Double Penny".
|
|
65
|
+
*/
|
|
66
|
+
function getCoinName(coinSubType) {
|
|
67
|
+
// Handle modded coins.
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
69
|
+
return coinNames_1.COIN_NAMES[coinSubType] ?? coinNames_1.DEFAULT_COIN_NAME;
|
|
70
|
+
}
|
|
71
|
+
exports.getCoinName = getCoinName;
|
|
72
|
+
/**
|
|
73
|
+
* Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
|
|
74
|
+
* sub-types.
|
|
75
|
+
*/
|
|
76
|
+
function getCoinValue(coinSubType) {
|
|
77
|
+
const value = coinSubTypeToValue_1.COIN_SUB_TYPE_TO_VALUE[coinSubType];
|
|
78
|
+
// Handle modded coin sub-types.
|
|
79
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
80
|
+
return value ?? coinSubTypeToValue_1.DEFAULT_COIN_VALUE;
|
|
81
|
+
}
|
|
82
|
+
exports.getCoinValue = getCoinValue;
|
|
83
|
+
/**
|
|
84
|
+
* Helper function to get the name of a heart, as listed in the "entities2.xml" file. Returns
|
|
85
|
+
* "Unknown" if the provided heart sub-type is not valid.
|
|
86
|
+
*
|
|
87
|
+
* This function only works for vanilla heart types.
|
|
88
|
+
*
|
|
89
|
+
* For example, `getHeartName(HeartSubType.ETERNAL)` would return "Heart (eternal)".
|
|
90
|
+
*/
|
|
91
|
+
function getHeartName(heartSubType) {
|
|
92
|
+
// Handle modded hearts.
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
94
|
+
return heartNames_1.HEART_NAMES[heartSubType] ?? heartNames_1.DEFAULT_HEART_NAME;
|
|
95
|
+
}
|
|
96
|
+
exports.getHeartName = getHeartName;
|
|
97
|
+
/**
|
|
98
|
+
* Helper function to get the name of a key, as listed in the "entities2.xml" file. Returns
|
|
99
|
+
* "Unknown" if the provided key sub-type is not valid.
|
|
100
|
+
*
|
|
101
|
+
* This function only works for vanilla key types.
|
|
102
|
+
*
|
|
103
|
+
* For example, `getKeyName(KeySubType.DOUBLE_PACK)` would return "Key Ring".
|
|
104
|
+
*/
|
|
105
|
+
function getKeyName(keySubType) {
|
|
106
|
+
// Handle modded bombs.
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
108
|
+
return keyNames_1.KEY_NAMES[keySubType] ?? keyNames_1.DEFAULT_KEY_NAME;
|
|
109
|
+
}
|
|
110
|
+
exports.getKeyName = getKeyName;
|
|
111
|
+
/** Helper function to get all of the red heart pickup entities in the room. */
|
|
112
|
+
function getRedHearts() {
|
|
113
|
+
const hearts = (0, pickupsSpecific_1.getHearts)();
|
|
114
|
+
return hearts.filter((heart) => redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(heart.SubType));
|
|
115
|
+
}
|
|
116
|
+
exports.getRedHearts = getRedHearts;
|
|
117
|
+
/**
|
|
118
|
+
* Helper function to get the name of a sack, as listed in the "entities2.xml" file. Returns
|
|
119
|
+
* "Unknown" if the provided sack sub-type is not valid.
|
|
120
|
+
*
|
|
121
|
+
* This function only works for vanilla sack types.
|
|
122
|
+
*
|
|
123
|
+
* For example, `getSackName(SackSubType.NORMAL)` would return "Grab Bag".
|
|
124
|
+
*/
|
|
125
|
+
function getSackName(sackSubType) {
|
|
126
|
+
// Handle modded hearts.
|
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
128
|
+
return sackNames_1.SACK_NAMES[sackSubType] ?? sackNames_1.DEFAULT_SACK_NAME;
|
|
129
|
+
}
|
|
130
|
+
exports.getSackName = getSackName;
|
|
131
|
+
/** Helper function to test if the provided pickup matches one of the various chest variants. */
|
|
132
|
+
function isChest(pickup) {
|
|
133
|
+
return isChestVariant(pickup.Variant);
|
|
134
|
+
}
|
|
135
|
+
exports.isChest = isChest;
|
|
136
|
+
/**
|
|
137
|
+
* Helper function to test if the provided pickup variant matches one of the various chest variants.
|
|
138
|
+
*/
|
|
139
|
+
function isChestVariant(pickupVariant) {
|
|
140
|
+
return constants_1.CHEST_PICKUP_VARIANTS_SET.has(pickupVariant);
|
|
141
|
+
}
|
|
142
|
+
exports.isChestVariant = isChestVariant;
|
|
143
|
+
/**
|
|
144
|
+
* Helper function to test if the provided pickup matches one of the various red heart sub-types.
|
|
145
|
+
*/
|
|
146
|
+
function isRedHeart(pickup) {
|
|
147
|
+
return (0, pickupVariants_1.isHeart)(pickup) && redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(pickup.SubType);
|
|
148
|
+
}
|
|
149
|
+
exports.isRedHeart = isRedHeart;
|
|
150
|
+
/**
|
|
151
|
+
* Helper function to test if the provided heart sub-type matches one of the various red heart
|
|
152
|
+
* sub-types.
|
|
153
|
+
*/
|
|
154
|
+
function isRedHeartSubType(heartSubType) {
|
|
155
|
+
return redHeartSubTypesSet_1.RED_HEART_SUB_TYPES_SET.has(heartSubType);
|
|
156
|
+
}
|
|
157
|
+
exports.isRedHeartSubType = isRedHeartSubType;
|
|
158
|
+
/**
|
|
159
|
+
* Helper function to remove all of the red heart pickup entities in the room.
|
|
160
|
+
*
|
|
161
|
+
* @param cap Optional. If specified, will only remove the given amount of hearts.
|
|
162
|
+
* @returns The red hearts that were removed.
|
|
163
|
+
*/
|
|
164
|
+
function removeAllRedHearts(cap) {
|
|
165
|
+
const redHearts = getRedHearts();
|
|
166
|
+
return (0, entities_1.removeEntities)(redHearts, cap);
|
|
167
|
+
}
|
|
168
|
+
exports.removeAllRedHearts = removeAllRedHearts;
|