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,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isVanillaCharacter = exports.isModdedCharacter = exports.isMainCharacter = exports.isFlyingCharacter = exports.getCharacterStartingTrinketType = exports.getCharacterStartingCollectibleTypes = exports.getCharacterSpritePNGFilePath = exports.getCharacterName = exports.getCharacterMaxHeartContainers = exports.getCharacterDeathAnimationName = exports.getCharacterDamageMultiplier = exports.characterStartsWithActiveItem = exports.characterGetsBlackHeartFromEternalHeart = exports.characterCanTakeFreeDevilDeals = exports.characterCanHaveSoulHearts = exports.characterCanHaveRedHearts = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const constants_1 = require("../core/constants");
|
|
6
|
+
const constantsFirstLast_1 = require("../core/constantsFirstLast");
|
|
7
|
+
const characterDamageMultipliers_1 = require("../objects/characterDamageMultipliers");
|
|
8
|
+
const characterNames_1 = require("../objects/characterNames");
|
|
9
|
+
const characterSpritePNGFileNames_1 = require("../objects/characterSpritePNGFileNames");
|
|
10
|
+
const characterStartingCollectibleTypes_1 = require("../objects/characterStartingCollectibleTypes");
|
|
11
|
+
const characterStartingTrinketTypes_1 = require("../objects/characterStartingTrinketTypes");
|
|
12
|
+
const charactersThatStartWithAnActiveItemSet_1 = require("../sets/charactersThatStartWithAnActiveItemSet");
|
|
13
|
+
const charactersWithBlackHeartFromEternalHeartSet_1 = require("../sets/charactersWithBlackHeartFromEternalHeartSet");
|
|
14
|
+
const charactersWithFreeDevilDealsSet_1 = require("../sets/charactersWithFreeDevilDealsSet");
|
|
15
|
+
const charactersWithNoRedHeartsSet_1 = require("../sets/charactersWithNoRedHeartsSet");
|
|
16
|
+
const charactersWithNoSoulHeartsSet_1 = require("../sets/charactersWithNoSoulHeartsSet");
|
|
17
|
+
const lostStyleCharactersSet_1 = require("../sets/lostStyleCharactersSet");
|
|
18
|
+
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
19
|
+
const FLYING_CHARACTERS_SET = new ReadonlySet_1.ReadonlySet(constants_1.FLYING_CHARACTERS);
|
|
20
|
+
const MAIN_CHARACTERS_SET = new ReadonlySet_1.ReadonlySet(constants_1.MAIN_CHARACTERS);
|
|
21
|
+
const PNG_PATH_PREFIX = "characters/costumes";
|
|
22
|
+
/**
|
|
23
|
+
* Helper function to determine if the given character can have red heart containers. Returns true
|
|
24
|
+
* for characters like Isaac, Magdalene, or Cain. Returns true for Keeper and Tainted Keeper, even
|
|
25
|
+
* though coin containers are not technically the same as red heart containers. Returns false for
|
|
26
|
+
* characters like Blue Baby. Returns false for The Lost and Tainted Lost.
|
|
27
|
+
*/
|
|
28
|
+
function characterCanHaveRedHearts(character) {
|
|
29
|
+
return !charactersWithNoRedHeartsSet_1.CHARACTERS_WITH_NO_RED_HEARTS_SET.has(character);
|
|
30
|
+
}
|
|
31
|
+
exports.characterCanHaveRedHearts = characterCanHaveRedHearts;
|
|
32
|
+
/**
|
|
33
|
+
* Helper function to determine if the given character can have soul hearts. Returns true for
|
|
34
|
+
* characters like Isaac, Magdalene, or Cain. Returns false for characters like Bethany. Returns
|
|
35
|
+
* false for The Lost and Tainted Lost.
|
|
36
|
+
*/
|
|
37
|
+
function characterCanHaveSoulHearts(character) {
|
|
38
|
+
return !charactersWithNoSoulHeartsSet_1.CHARACTERS_WITH_NO_SOUL_HEARTS_SET.has(character);
|
|
39
|
+
}
|
|
40
|
+
exports.characterCanHaveSoulHearts = characterCanHaveSoulHearts;
|
|
41
|
+
/**
|
|
42
|
+
* Helper function for determining whether the given character can take free Devil Deals. (e.g. The
|
|
43
|
+
* Lost, Tainted Lost, etc.)
|
|
44
|
+
*/
|
|
45
|
+
function characterCanTakeFreeDevilDeals(character) {
|
|
46
|
+
return charactersWithFreeDevilDealsSet_1.CHARACTERS_WITH_FREE_DEVIL_DEALS_SET.has(character);
|
|
47
|
+
}
|
|
48
|
+
exports.characterCanTakeFreeDevilDeals = characterCanTakeFreeDevilDeals;
|
|
49
|
+
/**
|
|
50
|
+
* Normally, characters get a red heart container upon reaching a new floor with an eternal heart,
|
|
51
|
+
* but some characters grant a black heart instead. Returns true for Dark Judas and Tainted Judas.
|
|
52
|
+
* Otherwise, returns false.
|
|
53
|
+
*/
|
|
54
|
+
function characterGetsBlackHeartFromEternalHeart(character) {
|
|
55
|
+
return charactersWithBlackHeartFromEternalHeartSet_1.CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET.has(character);
|
|
56
|
+
}
|
|
57
|
+
exports.characterGetsBlackHeartFromEternalHeart = characterGetsBlackHeartFromEternalHeart;
|
|
58
|
+
/**
|
|
59
|
+
* Helper function to determine if the specified character starts with an active item.
|
|
60
|
+
*
|
|
61
|
+
* For the purposes of this function, the save file is considered to be fully unlocked (e.g. Isaac
|
|
62
|
+
* is considered to starts with the D6, but this is not the case on a brand new save file).
|
|
63
|
+
*/
|
|
64
|
+
function characterStartsWithActiveItem(character) {
|
|
65
|
+
return charactersThatStartWithAnActiveItemSet_1.CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET.has(character);
|
|
66
|
+
}
|
|
67
|
+
exports.characterStartsWithActiveItem = characterStartsWithActiveItem;
|
|
68
|
+
/**
|
|
69
|
+
* Helper function to get the numerical damage multiplier for a character.
|
|
70
|
+
*
|
|
71
|
+
* @param character The character to get.
|
|
72
|
+
* @param hasWhoreOfBabylon Optional. Whether the character has the Whore of Babylon effect
|
|
73
|
+
* currently active. Defaults to false. This is necessary because Eve's
|
|
74
|
+
* damage multiplier changes from 0.75 to 1 when she has Whore of Babylon
|
|
75
|
+
* active.
|
|
76
|
+
*/
|
|
77
|
+
function getCharacterDamageMultiplier(character, hasWhoreOfBabylon = false) {
|
|
78
|
+
if (character === isaac_typescript_definitions_1.PlayerType.EVE && hasWhoreOfBabylon) {
|
|
79
|
+
return 1;
|
|
80
|
+
}
|
|
81
|
+
return characterDamageMultipliers_1.CHARACTER_DAMAGE_MULTIPLIERS[character];
|
|
82
|
+
}
|
|
83
|
+
exports.getCharacterDamageMultiplier = getCharacterDamageMultiplier;
|
|
84
|
+
/**
|
|
85
|
+
* - Most characters have a 56 frame death animation (i.e. the "Death" animation).
|
|
86
|
+
* - The Lost and Tainted Lost have a 38 frame death animation (i.e. the "LostDeath" animation).
|
|
87
|
+
* - Tainted Forgotten have a 20 frame death animation (i.e. the "ForgottenDeath" animation).
|
|
88
|
+
*/
|
|
89
|
+
function getCharacterDeathAnimationName(character) {
|
|
90
|
+
if (lostStyleCharactersSet_1.LOST_STYLE_CHARACTERS_SET.has(character)) {
|
|
91
|
+
return "LostDeath";
|
|
92
|
+
}
|
|
93
|
+
if (character === isaac_typescript_definitions_1.PlayerType.FORGOTTEN_B) {
|
|
94
|
+
return "ForgottenDeath";
|
|
95
|
+
}
|
|
96
|
+
return "Death";
|
|
97
|
+
}
|
|
98
|
+
exports.getCharacterDeathAnimationName = getCharacterDeathAnimationName;
|
|
99
|
+
/**
|
|
100
|
+
* Returns the maximum heart containers that the provided character can have. Normally, this is 12,
|
|
101
|
+
* but with Keeper it is 3, and with Tainted Keeper it is 2. This does not account for Birthright or
|
|
102
|
+
* Mother's Kiss; use the `getPlayerMaxHeartContainers` helper function for that.
|
|
103
|
+
*/
|
|
104
|
+
function getCharacterMaxHeartContainers(character) {
|
|
105
|
+
// 14
|
|
106
|
+
if (character === isaac_typescript_definitions_1.PlayerType.KEEPER) {
|
|
107
|
+
return 3;
|
|
108
|
+
}
|
|
109
|
+
// 16
|
|
110
|
+
if (character === isaac_typescript_definitions_1.PlayerType.FORGOTTEN) {
|
|
111
|
+
return 6;
|
|
112
|
+
}
|
|
113
|
+
// 17
|
|
114
|
+
if (character === isaac_typescript_definitions_1.PlayerType.SOUL) {
|
|
115
|
+
return 6;
|
|
116
|
+
}
|
|
117
|
+
// 33
|
|
118
|
+
if (character === isaac_typescript_definitions_1.PlayerType.KEEPER_B) {
|
|
119
|
+
return 2;
|
|
120
|
+
}
|
|
121
|
+
return 12;
|
|
122
|
+
}
|
|
123
|
+
exports.getCharacterMaxHeartContainers = getCharacterMaxHeartContainers;
|
|
124
|
+
/** Helper function to get the name of a character. Returns "Unknown" for modded characters. */
|
|
125
|
+
function getCharacterName(character) {
|
|
126
|
+
if (isModdedCharacter(character)) {
|
|
127
|
+
return "Unknown";
|
|
128
|
+
}
|
|
129
|
+
return characterNames_1.CHARACTER_NAMES[character];
|
|
130
|
+
}
|
|
131
|
+
exports.getCharacterName = getCharacterName;
|
|
132
|
+
/**
|
|
133
|
+
* Helper function to get the path to the sprite for a particular character.
|
|
134
|
+
*
|
|
135
|
+
* For example, the file path for `PlayerType.ISAAC` is
|
|
136
|
+
* "characters/costumes/character_001_isaac.png".
|
|
137
|
+
*/
|
|
138
|
+
function getCharacterSpritePNGFilePath(character) {
|
|
139
|
+
const fileName = characterSpritePNGFileNames_1.CHARACTER_SPRITE_PNG_FILE_NAMES[character];
|
|
140
|
+
return `${PNG_PATH_PREFIX}/${fileName}`;
|
|
141
|
+
}
|
|
142
|
+
exports.getCharacterSpritePNGFilePath = getCharacterSpritePNGFilePath;
|
|
143
|
+
/**
|
|
144
|
+
* Helper function to get the collectibles that are granted to a particular character at the
|
|
145
|
+
* beginning of a run.
|
|
146
|
+
*
|
|
147
|
+
* Note that this will return an empty array for Eden and Tainted Eden.
|
|
148
|
+
*/
|
|
149
|
+
function getCharacterStartingCollectibleTypes(character) {
|
|
150
|
+
return characterStartingCollectibleTypes_1.CHARACTER_STARTING_COLLECTIBLE_TYPES[character];
|
|
151
|
+
}
|
|
152
|
+
exports.getCharacterStartingCollectibleTypes = getCharacterStartingCollectibleTypes;
|
|
153
|
+
/**
|
|
154
|
+
* Helper function to get the trinket that is granted to a particular character at the beginning of
|
|
155
|
+
* a run. Returns undefined if the character does not start with a trinket.
|
|
156
|
+
*
|
|
157
|
+
* Note that this will return undefined for Eden and Tainted Eden.
|
|
158
|
+
*/
|
|
159
|
+
function getCharacterStartingTrinketType(character) {
|
|
160
|
+
return characterStartingTrinketTypes_1.CHARACTER_STARTING_TRINKET_TYPE[character];
|
|
161
|
+
}
|
|
162
|
+
exports.getCharacterStartingTrinketType = getCharacterStartingTrinketType;
|
|
163
|
+
function isFlyingCharacter(character) {
|
|
164
|
+
return FLYING_CHARACTERS_SET.has(character);
|
|
165
|
+
}
|
|
166
|
+
exports.isFlyingCharacter = isFlyingCharacter;
|
|
167
|
+
/**
|
|
168
|
+
* Helper function to check if the provided character is one of the characters that are selectable
|
|
169
|
+
* from the main menu (and have achievements related to completing the various bosses and so on).
|
|
170
|
+
*/
|
|
171
|
+
function isMainCharacter(character) {
|
|
172
|
+
return MAIN_CHARACTERS_SET.has(character);
|
|
173
|
+
}
|
|
174
|
+
exports.isMainCharacter = isMainCharacter;
|
|
175
|
+
function isModdedCharacter(character) {
|
|
176
|
+
return !isVanillaCharacter(character);
|
|
177
|
+
}
|
|
178
|
+
exports.isModdedCharacter = isModdedCharacter;
|
|
179
|
+
function isVanillaCharacter(character) {
|
|
180
|
+
return character <= constantsFirstLast_1.LAST_VANILLA_CHARACTER;
|
|
181
|
+
}
|
|
182
|
+
exports.isVanillaCharacter = isVanillaCharacter;
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.playChargeSoundEffect = exports.isActiveSlotDoubleCharged = exports.getUsableActiveItemSlots = exports.getTotalCharge = exports.getChargesAwayFromMax = exports.addRoomClearCharges = exports.addRoomClearChargeToSlot = exports.addRoomClearCharge = exports.addCharge = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const cachedClasses_1 = require("../core/cachedClasses");
|
|
6
|
+
const collectibles_1 = require("./collectibles");
|
|
7
|
+
const playerCollectibles_1 = require("./playerCollectibles");
|
|
8
|
+
const playerIndex_1 = require("./playerIndex");
|
|
9
|
+
const roomShape_1 = require("./roomShape");
|
|
10
|
+
/**
|
|
11
|
+
* Helper function to add a charge to the player's active item. Will flash the HUD and play the
|
|
12
|
+
* appropriate sound effect, depending on whether the charge is partially full or completely full.
|
|
13
|
+
*
|
|
14
|
+
* If the player's active item is already fully charged, then this function will return 0 and not
|
|
15
|
+
* flash the HUD or play a sound effect.
|
|
16
|
+
*
|
|
17
|
+
* This function will take the following things into account:
|
|
18
|
+
* - The Battery
|
|
19
|
+
* - AAA Battery
|
|
20
|
+
*
|
|
21
|
+
* @param player The player to grant the charges to.
|
|
22
|
+
* @param activeSlot Optional. The slot to grant the charges to. Default is `ActiveSlot.PRIMARY`.
|
|
23
|
+
* @param numCharges Optional. The amount of charges to grant. Default is 1.
|
|
24
|
+
* @param playSoundEffect Optional. Whether to play a charge-related sound effect. Default is true.
|
|
25
|
+
* @returns The amount of charges that were actually granted. For example, if the active item was
|
|
26
|
+
* only one away from a full charge, but the `numCharges` provided to this function was 2,
|
|
27
|
+
* then this function would return 1.
|
|
28
|
+
*/
|
|
29
|
+
function addCharge(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY, numCharges = 1, playSoundEffect = true) {
|
|
30
|
+
const hud = cachedClasses_1.game.GetHUD();
|
|
31
|
+
// Ensure that there is enough space on the active item to store these amount of charges. (If we
|
|
32
|
+
// add too many charges, it will grant orange "battery" charges, even if the player does not have
|
|
33
|
+
// The Battery.)
|
|
34
|
+
const chargesAwayFromMax = getChargesAwayFromMax(player, activeSlot);
|
|
35
|
+
const chargesToAdd = numCharges > chargesAwayFromMax ? chargesAwayFromMax : numCharges;
|
|
36
|
+
// The AAA Battery trinket might grant an additional charge.
|
|
37
|
+
const modifiedChargesToAdd = getChargesToAddWithAAAModifier(player, activeSlot, chargesToAdd);
|
|
38
|
+
const totalCharge = getTotalCharge(player, activeSlot);
|
|
39
|
+
const newCharge = totalCharge + modifiedChargesToAdd;
|
|
40
|
+
if (newCharge === totalCharge) {
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
player.SetActiveCharge(newCharge, activeSlot);
|
|
44
|
+
hud.FlashChargeBar(player, activeSlot);
|
|
45
|
+
if (playSoundEffect) {
|
|
46
|
+
playChargeSoundEffect(player, activeSlot);
|
|
47
|
+
}
|
|
48
|
+
return modifiedChargesToAdd;
|
|
49
|
+
}
|
|
50
|
+
exports.addCharge = addCharge;
|
|
51
|
+
/**
|
|
52
|
+
* Helper function to add a charge to a player's active item(s), emulating what happens when a room
|
|
53
|
+
* is cleared.
|
|
54
|
+
*
|
|
55
|
+
* This function will take the following things into account:
|
|
56
|
+
* - 2x2 rooms and L rooms granting a double charge
|
|
57
|
+
* - The Battery
|
|
58
|
+
* - AAA Battery
|
|
59
|
+
* - Not charging active items with `chargetype="special"`
|
|
60
|
+
*
|
|
61
|
+
* @param player The player to grant the charges to.
|
|
62
|
+
* @param bigRoomDoubleCharge Optional. If set to false, it will treat the current room as a 1x1
|
|
63
|
+
* room for the purposes of calculating how much charge to grant. Default
|
|
64
|
+
* is true.
|
|
65
|
+
* @param playSoundEffect Optional. Whether to play a charge-related sound effect. Default is true.
|
|
66
|
+
*/
|
|
67
|
+
function addRoomClearCharge(player, bigRoomDoubleCharge = true, playSoundEffect = true) {
|
|
68
|
+
for (const activeSlot of [
|
|
69
|
+
isaac_typescript_definitions_1.ActiveSlot.PRIMARY,
|
|
70
|
+
isaac_typescript_definitions_1.ActiveSlot.SECONDARY,
|
|
71
|
+
isaac_typescript_definitions_1.ActiveSlot.POCKET,
|
|
72
|
+
]) {
|
|
73
|
+
addRoomClearChargeToSlot(player, activeSlot, bigRoomDoubleCharge, playSoundEffect);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.addRoomClearCharge = addRoomClearCharge;
|
|
77
|
+
/**
|
|
78
|
+
* Helper function to add a charge to one of a player's active items, emulating what happens when a
|
|
79
|
+
* room is cleared.
|
|
80
|
+
*
|
|
81
|
+
* This function will take the following things into account:
|
|
82
|
+
* - L rooms and 2x2 rooms granting a double charge
|
|
83
|
+
* - The Battery
|
|
84
|
+
* - AAA Battery
|
|
85
|
+
* - Not charging active items with `chargetype="special"`
|
|
86
|
+
*
|
|
87
|
+
* @param player The player to grant the charges to.
|
|
88
|
+
* @param activeSlot Optional. The active item slot to grant the charges to. Default is
|
|
89
|
+
* `ActiveSlot.PRIMARY`.
|
|
90
|
+
* @param bigRoomDoubleCharge Optional. If set to false, it will treat the current room as a 1x1
|
|
91
|
+
* room for the purposes of calculating how much charge to grant. Default
|
|
92
|
+
* is true.
|
|
93
|
+
* @param playSoundEffect Optional. Whether to play a charge-related sound effect. Default is true.
|
|
94
|
+
*/
|
|
95
|
+
function addRoomClearChargeToSlot(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY, bigRoomDoubleCharge = true, playSoundEffect = true) {
|
|
96
|
+
const activeItem = player.GetActiveItem(activeSlot);
|
|
97
|
+
if (activeItem === isaac_typescript_definitions_1.CollectibleType.NULL) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// Certain collectibles have special charge mechanisms and are not charged upon a room being
|
|
101
|
+
// cleared.
|
|
102
|
+
const chargeType = (0, collectibles_1.getCollectibleChargeType)(activeItem);
|
|
103
|
+
if (chargeType === isaac_typescript_definitions_1.ItemConfigChargeType.SPECIAL) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const room = cachedClasses_1.game.GetRoom();
|
|
107
|
+
const roomShape = room.GetRoomShape();
|
|
108
|
+
// Big rooms grant two charges and normal rooms grant one charge.
|
|
109
|
+
let numCharges = bigRoomDoubleCharge ? (0, roomShape_1.getRoomShapeCharges)(roomShape) : 1;
|
|
110
|
+
// Handle the special case of a timed item. When clearing a room with a timed item, it should
|
|
111
|
+
// become fully charged.
|
|
112
|
+
if (chargeType === isaac_typescript_definitions_1.ItemConfigChargeType.TIMED) {
|
|
113
|
+
// The charges will become clamped to the proper amount in the `addCharge` function. (If the
|
|
114
|
+
// item is at 50% charge and the player has The Battery, it should go to 150% charged.)
|
|
115
|
+
numCharges = (0, collectibles_1.getCollectibleMaxCharges)(activeItem);
|
|
116
|
+
}
|
|
117
|
+
addCharge(player, activeSlot, numCharges, playSoundEffect);
|
|
118
|
+
}
|
|
119
|
+
exports.addRoomClearChargeToSlot = addRoomClearChargeToSlot;
|
|
120
|
+
/**
|
|
121
|
+
* The AAA Battery should grant an extra charge when the active item is one away from being fully
|
|
122
|
+
* charged.
|
|
123
|
+
*/
|
|
124
|
+
function getChargesToAddWithAAAModifier(player, activeSlot, chargesToAdd) {
|
|
125
|
+
const hasAAABattery = player.HasTrinket(isaac_typescript_definitions_1.TrinketType.AAA_BATTERY);
|
|
126
|
+
if (!hasAAABattery) {
|
|
127
|
+
return chargesToAdd;
|
|
128
|
+
}
|
|
129
|
+
const chargesAwayFromMax = getChargesAwayFromMax(player, activeSlot);
|
|
130
|
+
const AAABatteryShouldApply = chargesToAdd === chargesAwayFromMax - 1;
|
|
131
|
+
return AAABatteryShouldApply ? chargesToAdd + 1 : chargesToAdd;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Helper function to add a charge to every player's active item, emulating what happens when a room
|
|
135
|
+
* is cleared.
|
|
136
|
+
*
|
|
137
|
+
* This function will take the following things into account:
|
|
138
|
+
* - L rooms and 2x2 rooms granting a double charge
|
|
139
|
+
* - The Battery
|
|
140
|
+
* - AAA Battery
|
|
141
|
+
*
|
|
142
|
+
* @param bigRoomDoubleCharge Optional. If set to false, it will treat the current room as a 1x1
|
|
143
|
+
* room for the purposes of calculating how much charge to grant. Default
|
|
144
|
+
* is true.
|
|
145
|
+
*/
|
|
146
|
+
function addRoomClearCharges(bigRoomDoubleCharge = true) {
|
|
147
|
+
for (const player of (0, playerIndex_1.getPlayers)()) {
|
|
148
|
+
addRoomClearCharge(player, bigRoomDoubleCharge);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.addRoomClearCharges = addRoomClearCharges;
|
|
152
|
+
/**
|
|
153
|
+
* Helper function to get the amount of charges away from the maximum charge that a particular
|
|
154
|
+
* player is.
|
|
155
|
+
*
|
|
156
|
+
* This function accounts for The Battery. For example, if the player has 2/6 charges on a D6, this
|
|
157
|
+
* function will return 10 (because there are 4 charges remaining on the base charge and 6 charges
|
|
158
|
+
* remaining on The Battery charge).
|
|
159
|
+
*
|
|
160
|
+
* @param player The player to get the charges from.
|
|
161
|
+
* @param activeSlot Optional. The slot to get the charges from. Default is `ActiveSlot.PRIMARY`.
|
|
162
|
+
*/
|
|
163
|
+
function getChargesAwayFromMax(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY) {
|
|
164
|
+
const totalCharge = getTotalCharge(player, activeSlot);
|
|
165
|
+
const activeItem = player.GetActiveItem(activeSlot);
|
|
166
|
+
const hasBattery = player.HasCollectible(isaac_typescript_definitions_1.CollectibleType.BATTERY);
|
|
167
|
+
const maxCharges = (0, collectibles_1.getCollectibleMaxCharges)(activeItem);
|
|
168
|
+
const effectiveMaxCharges = hasBattery ? maxCharges * 2 : maxCharges;
|
|
169
|
+
return effectiveMaxCharges - totalCharge;
|
|
170
|
+
}
|
|
171
|
+
exports.getChargesAwayFromMax = getChargesAwayFromMax;
|
|
172
|
+
/**
|
|
173
|
+
* Helper function to get the combined normal charge and the battery charge for the player's active
|
|
174
|
+
* item. This is useful because you have to add these two values together when setting the active
|
|
175
|
+
* charge.
|
|
176
|
+
*
|
|
177
|
+
* @param player The player to get the charges from.
|
|
178
|
+
* @param activeSlot Optional. The slot to get the charges from. Default is `ActiveSlot.PRIMARY`.
|
|
179
|
+
*/
|
|
180
|
+
function getTotalCharge(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY) {
|
|
181
|
+
const activeCharge = player.GetActiveCharge(activeSlot);
|
|
182
|
+
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
183
|
+
return activeCharge + batteryCharge;
|
|
184
|
+
}
|
|
185
|
+
exports.getTotalCharge = getTotalCharge;
|
|
186
|
+
/**
|
|
187
|
+
* Helper function to find the active slots that the player has the corresponding collectible type
|
|
188
|
+
* in and have enough charge to be used. Returns an empty array if the player does not have the
|
|
189
|
+
* collectible in any active slot or does not have enough charges.
|
|
190
|
+
*/
|
|
191
|
+
function getUsableActiveItemSlots(player, collectibleType) {
|
|
192
|
+
const maxCharges = (0, collectibles_1.getCollectibleMaxCharges)(collectibleType);
|
|
193
|
+
const activeSlots = (0, playerCollectibles_1.getActiveItemSlots)(player, collectibleType);
|
|
194
|
+
return activeSlots.filter((activeSlot) => {
|
|
195
|
+
const totalCharge = getTotalCharge(player, activeSlot);
|
|
196
|
+
return totalCharge >= maxCharges;
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
exports.getUsableActiveItemSlots = getUsableActiveItemSlots;
|
|
200
|
+
/**
|
|
201
|
+
* Helper function to check if a player's active item is "double charged", meaning that it has both
|
|
202
|
+
* a full normal charge and a full charge from The Battery.
|
|
203
|
+
*
|
|
204
|
+
* @param player The player to check.
|
|
205
|
+
* @param activeSlot Optional. The slot to check. Default is `ActiveSlot.PRIMARY`.
|
|
206
|
+
*/
|
|
207
|
+
function isActiveSlotDoubleCharged(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY) {
|
|
208
|
+
const collectibleType = player.GetActiveItem(activeSlot);
|
|
209
|
+
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
210
|
+
const maxCharges = (0, collectibles_1.getCollectibleMaxCharges)(collectibleType);
|
|
211
|
+
return batteryCharge >= maxCharges;
|
|
212
|
+
}
|
|
213
|
+
exports.isActiveSlotDoubleCharged = isActiveSlotDoubleCharged;
|
|
214
|
+
/**
|
|
215
|
+
* Helper function to play the appropriate sound effect for a player after getting one or more
|
|
216
|
+
* charges on their active item. (There is a different sound depending on whether the item is fully
|
|
217
|
+
* charged.)
|
|
218
|
+
*
|
|
219
|
+
* @param player The player to play the sound effect for.
|
|
220
|
+
* @param activeSlot Optional. The slot that was just charged. Default is `ActiveSlot.PRIMARY`.
|
|
221
|
+
*/
|
|
222
|
+
function playChargeSoundEffect(player, activeSlot = isaac_typescript_definitions_1.ActiveSlot.PRIMARY) {
|
|
223
|
+
for (const soundEffect of [
|
|
224
|
+
isaac_typescript_definitions_1.SoundEffect.BATTERY_CHARGE,
|
|
225
|
+
isaac_typescript_definitions_1.SoundEffect.BEEP, // 171
|
|
226
|
+
]) {
|
|
227
|
+
cachedClasses_1.sfxManager.Stop(soundEffect);
|
|
228
|
+
}
|
|
229
|
+
const chargeSoundEffect = shouldPlayFullRechargeSound(player, activeSlot)
|
|
230
|
+
? isaac_typescript_definitions_1.SoundEffect.BATTERY_CHARGE
|
|
231
|
+
: isaac_typescript_definitions_1.SoundEffect.BEEP;
|
|
232
|
+
cachedClasses_1.sfxManager.Play(chargeSoundEffect);
|
|
233
|
+
}
|
|
234
|
+
exports.playChargeSoundEffect = playChargeSoundEffect;
|
|
235
|
+
function shouldPlayFullRechargeSound(player, activeSlot) {
|
|
236
|
+
const activeItem = player.GetActiveItem(activeSlot);
|
|
237
|
+
const activeCharge = player.GetActiveCharge(activeSlot);
|
|
238
|
+
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
239
|
+
const hasBattery = player.HasCollectible(isaac_typescript_definitions_1.CollectibleType.BATTERY);
|
|
240
|
+
const maxCharges = (0, collectibles_1.getCollectibleMaxCharges)(activeItem);
|
|
241
|
+
// If we do not have The Battery, play the full recharge sound if we are now fully charged.
|
|
242
|
+
if (!hasBattery) {
|
|
243
|
+
// We cannot use the `EntityPlayer.NeedsCharge` method because it does not work properly for
|
|
244
|
+
// items with `chargetype="special"`.
|
|
245
|
+
return activeCharge === maxCharges;
|
|
246
|
+
}
|
|
247
|
+
// If we do have The Battery, play the full recharge sound if we are exactly double charged or
|
|
248
|
+
// exactly single charged.
|
|
249
|
+
return (batteryCharge === maxCharges ||
|
|
250
|
+
(activeCharge === maxCharges && batteryCharge === 0));
|
|
251
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderChargeBar = exports.newChargeBarSprites = void 0;
|
|
4
|
+
const CHARGE_BAR_ANM2 = "gfx/ui/ui_chargebar.anm2";
|
|
5
|
+
/**
|
|
6
|
+
* Constructor for a `ChargeBarSprites` object. For more information, see the `renderChargeBar`
|
|
7
|
+
* helper function.
|
|
8
|
+
*
|
|
9
|
+
* Note that this is for the vertical charge bar that represents the number of charges that an
|
|
10
|
+
* active item has, not the circular charge bar that shows e.g. the charge rate of Brimstone.
|
|
11
|
+
*/
|
|
12
|
+
function newChargeBarSprites(maxCharges) {
|
|
13
|
+
const back = Sprite();
|
|
14
|
+
back.Load(CHARGE_BAR_ANM2, true);
|
|
15
|
+
back.Play("BarEmpty", true);
|
|
16
|
+
const meter = Sprite();
|
|
17
|
+
meter.Load(CHARGE_BAR_ANM2, true);
|
|
18
|
+
meter.Play("BarFull", true);
|
|
19
|
+
const meterBattery = Sprite();
|
|
20
|
+
meterBattery.Load(CHARGE_BAR_ANM2, true);
|
|
21
|
+
meterBattery.Play("BarFull", true);
|
|
22
|
+
const lines = Sprite();
|
|
23
|
+
lines.Load(CHARGE_BAR_ANM2, true);
|
|
24
|
+
lines.Play(`BarOverlay${maxCharges}`, true);
|
|
25
|
+
return {
|
|
26
|
+
back,
|
|
27
|
+
meter,
|
|
28
|
+
meterBattery,
|
|
29
|
+
lines,
|
|
30
|
+
maxCharges,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
exports.newChargeBarSprites = newChargeBarSprites;
|
|
34
|
+
/**
|
|
35
|
+
* Helper function to render a charge bar on the screen. First, call the `newChargeBarSprites`
|
|
36
|
+
* function to initialize the sprites, and then call this function on every render frame.
|
|
37
|
+
*
|
|
38
|
+
* Note that this is for the vertical charge bar that represents the number of charges that an
|
|
39
|
+
* active item has, not the circular charge bar that shows e.g. the charge rate of Brimstone.
|
|
40
|
+
*/
|
|
41
|
+
function renderChargeBar(sprites, position, normalCharges, batteryCharges) {
|
|
42
|
+
sprites.back.Render(position);
|
|
43
|
+
const normalChargesClamp = getChargeBarClamp(normalCharges, sprites.maxCharges);
|
|
44
|
+
sprites.meter.Render(position, normalChargesClamp);
|
|
45
|
+
const batteryChargesClamp = getChargeBarClamp(batteryCharges, sprites.maxCharges);
|
|
46
|
+
sprites.meterBattery.Render(position, batteryChargesClamp);
|
|
47
|
+
sprites.lines.Render(position);
|
|
48
|
+
}
|
|
49
|
+
exports.renderChargeBar = renderChargeBar;
|
|
50
|
+
function getChargeBarClamp(charges, maxCharges) {
|
|
51
|
+
const meterMultiplier = 24 / maxCharges;
|
|
52
|
+
const meterClip = 26 - charges * meterMultiplier;
|
|
53
|
+
return Vector(0, meterClip);
|
|
54
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isQuestCollectible = exports.collectibleHasTag = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const cachedClasses_1 = require("../core/cachedClasses");
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
function collectibleHasTag(collectibleOrCollectibleType, tag) {
|
|
8
|
+
const collectibleType = (0, types_1.isInteger)(collectibleOrCollectibleType)
|
|
9
|
+
? collectibleOrCollectibleType
|
|
10
|
+
: collectibleOrCollectibleType.SubType;
|
|
11
|
+
const itemConfigItem = cachedClasses_1.itemConfig.GetCollectible(collectibleType);
|
|
12
|
+
if (itemConfigItem === undefined) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return itemConfigItem.HasTags(tag);
|
|
16
|
+
}
|
|
17
|
+
exports.collectibleHasTag = collectibleHasTag;
|
|
18
|
+
function isQuestCollectible(collectibleOrCollectibleType) {
|
|
19
|
+
const collectibleType = (0, types_1.isInteger)(collectibleOrCollectibleType)
|
|
20
|
+
? collectibleOrCollectibleType
|
|
21
|
+
: collectibleOrCollectibleType.SubType;
|
|
22
|
+
return collectibleHasTag(collectibleType, isaac_typescript_definitions_1.ItemConfigTag.QUEST);
|
|
23
|
+
}
|
|
24
|
+
exports.isQuestCollectible = isQuestCollectible;
|