isaacscript-common 87.9.7 → 87.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cachedEnumValues.js +29 -32
- package/dist/callbackClasses.js +142 -289
- package/dist/callbacks.js +147 -183
- package/dist/classes/DefaultMap.js +4 -8
- package/dist/classes/ModFeature.js +21 -25
- package/dist/classes/ModUpgraded.js +43 -47
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
- package/dist/classes/callbacks/InputActionFilter.js +4 -8
- package/dist/classes/callbacks/InputActionPlayer.js +4 -8
- package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
- package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
- package/dist/classes/callbacks/PostBombExploded.js +8 -12
- package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
- package/dist/classes/callbacks/PostBombInitLate.js +6 -10
- package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostBoneSwing.js +7 -11
- package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
- package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
- package/dist/classes/callbacks/PostCustomRevive.js +4 -8
- package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
- package/dist/classes/callbacks/PostDoorRender.js +8 -12
- package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
- package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
- package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
- package/dist/classes/callbacks/PostEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFirstFlip.js +4 -8
- package/dist/classes/callbacks/PostFlip.js +4 -8
- package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
- package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
- package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
- package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
- package/dist/classes/callbacks/PostItemDischarge.js +23 -27
- package/dist/classes/callbacks/PostItemPickup.js +6 -10
- package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
- package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
- package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
- package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
- package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
- package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPickupChanged.js +6 -10
- package/dist/classes/callbacks/PostPickupCollect.js +8 -12
- package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
- package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
- package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
- package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPitRender.js +8 -12
- package/dist/classes/callbacks/PostPitUpdate.js +8 -12
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
- package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
- package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
- package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
- package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPoopRender.js +8 -12
- package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
- package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
- package/dist/classes/callbacks/PostProjectileKill.js +8 -12
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPurchase.js +21 -25
- package/dist/classes/callbacks/PostRockRender.js +8 -12
- package/dist/classes/callbacks/PostRockUpdate.js +8 -12
- package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
- package/dist/classes/callbacks/PostSacrifice.js +12 -16
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
- package/dist/classes/callbacks/PostSlotCollision.js +8 -12
- package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
- package/dist/classes/callbacks/PostSlotInit.js +6 -10
- package/dist/classes/callbacks/PostSlotRender.js +6 -10
- package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
- package/dist/classes/callbacks/PostSpikesRender.js +8 -12
- package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
- package/dist/classes/callbacks/PostTNTRender.js +8 -12
- package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
- package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
- package/dist/classes/callbacks/PostTearInitLate.js +6 -10
- package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
- package/dist/classes/callbacks/PostTearKill.js +8 -12
- package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostTransformation.js +10 -14
- package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
- package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
- package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
- package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreCustomRevive.js +6 -10
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreGetPedestal.js +8 -12
- package/dist/classes/callbacks/PreItemPickup.js +6 -10
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PreNewLevel.js +10 -14
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
- package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
- package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
- package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
- package/dist/classes/features/other/CharacterStats.js +9 -13
- package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
- package/dist/classes/features/other/CustomHotkeys.js +15 -19
- package/dist/classes/features/other/CustomItemPools.js +20 -24
- package/dist/classes/features/other/CustomPickups.js +15 -19
- package/dist/classes/features/other/CustomStages.js +116 -153
- package/dist/classes/features/other/CustomTrapdoors.js +119 -123
- package/dist/classes/features/other/DebugDisplay.js +77 -81
- package/dist/classes/features/other/DeployJSONRoom.js +65 -69
- package/dist/classes/features/other/DisableAllSound.js +14 -18
- package/dist/classes/features/other/DisableInputs.js +24 -28
- package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
- package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
- package/dist/classes/features/other/FadeInRemover.js +9 -13
- package/dist/classes/features/other/FastReset.js +18 -22
- package/dist/classes/features/other/FlyingDetection.js +10 -14
- package/dist/classes/features/other/ForgottenSwitch.js +8 -12
- package/dist/classes/features/other/ItemPoolDetection.js +35 -39
- package/dist/classes/features/other/ModdedElementDetection.js +43 -47
- package/dist/classes/features/other/ModdedElementSets.js +135 -139
- package/dist/classes/features/other/NoSirenSteal.js +7 -11
- package/dist/classes/features/other/Pause.js +48 -52
- package/dist/classes/features/other/PersistentEntities.js +16 -20
- package/dist/classes/features/other/PickupIndexCreation.js +31 -35
- package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
- package/dist/classes/features/other/PonyDetection.js +22 -26
- package/dist/classes/features/other/PressInput.js +10 -14
- package/dist/classes/features/other/PreventChildEntities.js +6 -10
- package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
- package/dist/classes/features/other/RerunDetection.js +11 -15
- package/dist/classes/features/other/RoomClearFrame.js +11 -15
- package/dist/classes/features/other/RoomHistory.js +30 -34
- package/dist/classes/features/other/RunInNFrames.js +24 -28
- package/dist/classes/features/other/RunNextRoom.js +8 -12
- package/dist/classes/features/other/RunNextRun.js +8 -12
- package/dist/classes/features/other/SaveDataManager.js +61 -65
- package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
- package/dist/classes/features/other/StageHistory.js +76 -80
- package/dist/classes/features/other/StartAmbush.js +12 -16
- package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
- package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
- package/dist/classes/features/other/customStages/backdrop.js +68 -71
- package/dist/classes/features/other/customStages/constants.js +7 -10
- package/dist/classes/features/other/customStages/gridEntities.js +23 -30
- package/dist/classes/features/other/customStages/shadows.js +27 -30
- package/dist/classes/features/other/customStages/streakText.js +55 -60
- package/dist/classes/features/other/customStages/utils.js +13 -17
- package/dist/classes/features/other/customStages/v.js +4 -7
- package/dist/classes/features/other/customStages/versusScreen.js +46 -50
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
- package/dist/classes/features/other/debugDisplay/utils.js +6 -10
- package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
- package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
- package/dist/classes/features/other/saveDataManager/constants.js +1 -4
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
- package/dist/classes/private/CustomCallback.js +4 -8
- package/dist/classes/private/Feature.js +1 -5
- package/dist/core/cachedClasses.js +12 -15
- package/dist/core/constants.js +126 -130
- package/dist/core/constantsFirstLast.js +22 -25
- package/dist/core/constantsVanilla.js +25 -28
- package/dist/core/upgradeMod.js +7 -10
- package/dist/decorators.js +6 -10
- package/dist/enums/AmbushType.js +2 -5
- package/dist/enums/CornerType.js +2 -5
- package/dist/enums/HealthType.js +2 -5
- package/dist/enums/ISCFeature.js +2 -5
- package/dist/enums/LadderSubTypeCustom.js +2 -5
- package/dist/enums/ModCallbackCustom.js +2 -5
- package/dist/enums/MysteriousPaperEffect.js +2 -5
- package/dist/enums/PlayerStat.js +2 -5
- package/dist/enums/PocketItemType.js +2 -5
- package/dist/enums/RockAltType.js +2 -5
- package/dist/enums/SaveDataKey.js +2 -5
- package/dist/enums/SerializationType.js +2 -5
- package/dist/enums/SlotDestructionType.js +2 -5
- package/dist/enums/private/GridEntityTypeCustom.js +1 -4
- package/dist/enums/private/SerializationBrand.js +2 -5
- package/dist/enums/private/StageTravelState.js +2 -5
- package/dist/enums/private/TrapdoorAnimation.js +2 -5
- package/dist/enums/private/UIStreakAnimation.js +2 -5
- package/dist/features.js +138 -141
- package/dist/functions/ambush.js +9 -12
- package/dist/functions/array.js +45 -76
- package/dist/functions/arrayLua.js +7 -16
- package/dist/functions/benchmark.js +4 -7
- package/dist/functions/bitSet128.js +19 -26
- package/dist/functions/bitwise.js +14 -23
- package/dist/functions/bombs.js +1 -4
- package/dist/functions/bosses.js +68 -85
- package/dist/functions/cards.js +44 -62
- package/dist/functions/challenges.js +28 -39
- package/dist/functions/characters.js +68 -87
- package/dist/functions/charge.js +41 -52
- package/dist/functions/chargeBar.js +2 -6
- package/dist/functions/collectibleTag.js +9 -13
- package/dist/functions/collectibles.js +133 -172
- package/dist/functions/color.js +29 -38
- package/dist/functions/console.js +4 -8
- package/dist/functions/curses.js +6 -10
- package/dist/functions/debugFunctions.js +7 -14
- package/dist/functions/decorators.js +13 -19
- package/dist/functions/deepCopy.js +96 -99
- package/dist/functions/deepCopyTests.js +56 -59
- package/dist/functions/dimensions.js +10 -14
- package/dist/functions/direction.js +22 -30
- package/dist/functions/doors.js +104 -154
- package/dist/functions/easing.js +30 -62
- package/dist/functions/effects.js +6 -10
- package/dist/functions/emptyRoom.js +30 -34
- package/dist/functions/entities.js +88 -115
- package/dist/functions/entitiesSpecific.js +83 -125
- package/dist/functions/entityTypes.js +3 -6
- package/dist/functions/enums.js +27 -41
- package/dist/functions/external.js +4 -8
- package/dist/functions/familiars.js +17 -25
- package/dist/functions/flag.js +10 -19
- package/dist/functions/frames.js +31 -51
- package/dist/functions/globals.js +26 -66
- package/dist/functions/gridEntities.js +231 -269
- package/dist/functions/gridEntitiesSpecific.js +86 -126
- package/dist/functions/gridIndex.js +8 -11
- package/dist/functions/hash.js +1 -4
- package/dist/functions/hex.js +7 -11
- package/dist/functions/input.js +65 -88
- package/dist/functions/isaacAPIClass.js +28 -53
- package/dist/functions/itemPool.js +39 -48
- package/dist/functions/jsonHelpers.js +5 -42
- package/dist/functions/jsonRoom.js +39 -46
- package/dist/functions/kColor.js +30 -39
- package/dist/functions/language.js +3 -6
- package/dist/functions/level.js +20 -26
- package/dist/functions/levelGrid.js +81 -108
- package/dist/functions/log.js +6 -12
- package/dist/functions/logEntities.js +49 -59
- package/dist/functions/logMisc.js +183 -214
- package/dist/functions/map.js +10 -20
- package/dist/functions/math.js +16 -31
- package/dist/functions/merge.js +48 -51
- package/dist/functions/mergeTests.js +34 -37
- package/dist/functions/minimap.js +34 -46
- package/dist/functions/modFeatures.js +1 -4
- package/dist/functions/newArray.js +5 -8
- package/dist/functions/nextStage.js +63 -67
- package/dist/functions/npcDataStructures.js +9 -20
- package/dist/functions/npcs.js +37 -45
- package/dist/functions/pickupVariants.js +26 -39
- package/dist/functions/pickups.js +43 -59
- package/dist/functions/pickupsSpecific.js +76 -118
- package/dist/functions/pills.js +52 -72
- package/dist/functions/playerCenter.js +13 -16
- package/dist/functions/playerCollectibles.js +59 -79
- package/dist/functions/playerDataStructures.js +18 -29
- package/dist/functions/playerEffects.js +12 -19
- package/dist/functions/playerHealth.js +91 -113
- package/dist/functions/playerIndex.js +22 -33
- package/dist/functions/playerTrinkets.js +31 -43
- package/dist/functions/players.js +87 -126
- package/dist/functions/pocketItems.js +33 -43
- package/dist/functions/positionVelocity.js +23 -32
- package/dist/functions/pressurePlate.js +7 -10
- package/dist/functions/projectiles.js +11 -15
- package/dist/functions/random.js +8 -13
- package/dist/functions/readOnly.js +3 -8
- package/dist/functions/render.js +7 -12
- package/dist/functions/revive.js +38 -45
- package/dist/functions/rng.js +31 -44
- package/dist/functions/rockAlt.js +18 -22
- package/dist/functions/roomData.js +24 -40
- package/dist/functions/roomGrid.js +17 -25
- package/dist/functions/roomShape.js +39 -55
- package/dist/functions/roomShapeWalls.js +67 -71
- package/dist/functions/roomTransition.js +13 -17
- package/dist/functions/rooms.js +181 -244
- package/dist/functions/run.js +29 -39
- package/dist/functions/seeds.js +6 -10
- package/dist/functions/serialization.js +27 -34
- package/dist/functions/set.js +24 -40
- package/dist/functions/slots.js +18 -22
- package/dist/functions/sort.js +9 -15
- package/dist/functions/sound.js +12 -16
- package/dist/functions/spawnCollectible.js +21 -26
- package/dist/functions/sprites.js +16 -24
- package/dist/functions/stage.js +122 -164
- package/dist/functions/stats.js +37 -43
- package/dist/functions/storyBosses.js +36 -40
- package/dist/functions/string.js +19 -33
- package/dist/functions/table.js +21 -31
- package/dist/functions/tears.js +6 -14
- package/dist/functions/transformations.js +35 -42
- package/dist/functions/trinketGive.js +29 -36
- package/dist/functions/trinkets.js +45 -60
- package/dist/functions/tstlClass.js +11 -20
- package/dist/functions/types.js +22 -46
- package/dist/functions/ui.js +25 -40
- package/dist/functions/utils.js +22 -36
- package/dist/functions/vector.js +33 -46
- package/dist/functions/versusScreen.js +12 -18
- package/dist/functions/weighted.js +8 -12
- package/dist/index.js +150 -166
- package/dist/index.rollup.d.ts +11 -11
- package/dist/indexLua.js +151 -167
- package/dist/interfaces/ChargeBarSprites.js +1 -2
- package/dist/interfaces/Corner.js +1 -2
- package/dist/interfaces/CustomStageTSConfig.js +1 -2
- package/dist/interfaces/GridEntityCustomData.js +1 -2
- package/dist/interfaces/JSONRoomsFile.js +1 -2
- package/dist/interfaces/PlayerHealth.d.ts +11 -11
- package/dist/interfaces/PlayerHealth.d.ts.map +1 -1
- package/dist/interfaces/PlayerHealth.js +1 -2
- package/dist/interfaces/PlayerStats.js +2 -4
- package/dist/interfaces/PocketItemDescription.js +1 -2
- package/dist/interfaces/RoomDescription.js +1 -2
- package/dist/interfaces/SaveData.js +1 -2
- package/dist/interfaces/StageHistoryEntry.js +1 -2
- package/dist/interfaces/TSTLClassMetatable.js +1 -2
- package/dist/interfaces/TrinketSituation.js +1 -2
- package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
- package/dist/interfaces/private/CustomStage.js +1 -2
- package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
- package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
- package/dist/isaacscript-common.lua +1 -1
- package/dist/maps/PHDPillConversionsMap.js +19 -22
- package/dist/maps/cardNameToTypeMap.js +205 -208
- package/dist/maps/characterNameToTypeMap.js +85 -88
- package/dist/maps/collectibleNameToTypeMap.js +5 -8
- package/dist/maps/defaultPlayerStatMap.js +10 -13
- package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
- package/dist/maps/falsePHDPillConversionsMap.js +33 -36
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
- package/dist/maps/gridEntityXMLMap.js +52 -55
- package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
- package/dist/maps/keyboardToStringMap.js +66 -69
- package/dist/maps/pillNameToEffectMap.js +83 -86
- package/dist/maps/roomNameToTypeMap.js +38 -41
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
- package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
- package/dist/maps/trinketNameToTypeMap.js +5 -8
- package/dist/objects/LRoomShapeToRectangles.js +22 -25
- package/dist/objects/backdropTypeToRockAltType.js +65 -68
- package/dist/objects/batteryNames.js +8 -11
- package/dist/objects/bombNames.js +11 -14
- package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
- package/dist/objects/bossNamePNGFileNames.js +104 -107
- package/dist/objects/bossNames.js +105 -108
- package/dist/objects/bossPortraitPNGFileNames.js +104 -107
- package/dist/objects/cardDescriptions.js +101 -104
- package/dist/objects/cardNames.js +101 -104
- package/dist/objects/challengeBosses.js +49 -52
- package/dist/objects/challengeCharacters.js +49 -52
- package/dist/objects/challengeCollectibleTypes.js +160 -163
- package/dist/objects/challengeNames.js +49 -52
- package/dist/objects/challengeTrinketType.js +48 -51
- package/dist/objects/characterDamageMultipliers.js +44 -47
- package/dist/objects/characterNames.js +44 -47
- package/dist/objects/characterSpritePNGFileNames.js +44 -47
- package/dist/objects/characterStartingCollectibleTypes.js +49 -52
- package/dist/objects/characterStartingTrinketTypes.js +44 -47
- package/dist/objects/chestNames.js +15 -18
- package/dist/objects/coinNames.js +11 -14
- package/dist/objects/coinSubTypeToValue.js +11 -14
- package/dist/objects/collectibleDescriptions.js +725 -728
- package/dist/objects/collectibleNames.js +725 -728
- package/dist/objects/colors.js +1 -4
- package/dist/objects/directionNames.js +7 -10
- package/dist/objects/directionToDegrees.js +7 -10
- package/dist/objects/directionToMoveAction.js +7 -10
- package/dist/objects/directionToShootAction.js +7 -10
- package/dist/objects/directionToVector.js +9 -12
- package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
- package/dist/objects/doorSlotToDirection.js +11 -14
- package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
- package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
- package/dist/objects/heartNames.js +16 -19
- package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
- package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
- package/dist/objects/kColors.js +1 -4
- package/dist/objects/keyNames.js +8 -11
- package/dist/objects/languageNames.js +9 -12
- package/dist/objects/oppositeDoorSlots.js +11 -14
- package/dist/objects/pillEffectClasses.js +53 -56
- package/dist/objects/pillEffectNames.js +53 -56
- package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
- package/dist/objects/pillEffectTypes.js +53 -56
- package/dist/objects/playerNamePNGFileNames.js +44 -47
- package/dist/objects/playerPortraitPNGFileNames.js +44 -47
- package/dist/objects/roomShapeBounds.js +23 -26
- package/dist/objects/roomShapeCorners.js +128 -131
- package/dist/objects/roomShapeLayoutSizes.js +23 -26
- package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
- package/dist/objects/roomShapeToDoorSlots.js +48 -51
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
- package/dist/objects/roomShapeToGridWidth.js +14 -17
- package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
- package/dist/objects/roomShapeVolumes.js +21 -24
- package/dist/objects/roomTypeNames.js +32 -35
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
- package/dist/objects/sackNames.js +6 -9
- package/dist/objects/slotNames.js +21 -24
- package/dist/objects/stageIDNames.js +33 -36
- package/dist/objects/stageToMusic.js +69 -72
- package/dist/objects/stageToStageID.js +90 -93
- package/dist/objects/stageTypeSuffixes.js +8 -11
- package/dist/objects/transformationNames.js +16 -19
- package/dist/objects/trinketDescriptions.js +192 -195
- package/dist/objects/trinketNames.js +192 -195
- package/dist/objects/versusScreenBackgroundColors.js +39 -42
- package/dist/objects/versusScreenDirtSpotColors.js +39 -42
- package/dist/patchErrorFunctions.js +4 -7
- package/dist/serialization.js +6 -9
- package/dist/sets/LRoomShapesSet.js +7 -10
- package/dist/sets/bigRoomShapesSet.js +10 -13
- package/dist/sets/bossSets.js +261 -264
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
- package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
- package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
- package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
- package/dist/sets/consoleCommandsSet.js +2 -5
- package/dist/sets/entitiesWithArmorSet.js +44 -47
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
- package/dist/sets/itemConfigCardTypesForCards.js +7 -10
- package/dist/sets/lostStyleCharactersSet.js +8 -11
- package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
- package/dist/sets/narrowRoomShapesSet.js +7 -10
- package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
- package/dist/sets/redHeartSubTypesSet.js +6 -9
- package/dist/sets/repentanceBossIDsSet.js +26 -29
- package/dist/sets/sinEntityTypesSet.js +10 -13
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
- package/dist/shaderCrashFix.js +4 -7
- package/dist/shouldFire.js +28 -58
- package/dist/types/AddSubtract.js +1 -2
- package/dist/types/AllButFirst.js +1 -2
- package/dist/types/AllButLast.js +1 -2
- package/dist/types/AnyClass.js +1 -2
- package/dist/types/AnyEntity.js +1 -2
- package/dist/types/AnyFunction.js +1 -2
- package/dist/types/AnyGridEntity.js +1 -2
- package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
- package/dist/types/ConversionHeartSubType.js +1 -2
- package/dist/types/Decrement.js +1 -2
- package/dist/types/ERange.js +1 -2
- package/dist/types/EntityID.js +1 -2
- package/dist/types/FunctionTuple.js +1 -2
- package/dist/types/GridEntityID.js +1 -2
- package/dist/types/HasFunction.js +1 -2
- package/dist/types/IRange.js +1 -2
- package/dist/types/Immutable.js +1 -2
- package/dist/types/Increment.js +1 -2
- package/dist/types/LowercaseKeys.js +1 -2
- package/dist/types/NaturalNumbersLessThan.js +1 -2
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
- package/dist/types/ObjectValues.js +1 -2
- package/dist/types/PickingUpItem.js +15 -22
- package/dist/types/PickupIndex.js +1 -2
- package/dist/types/PlayerIndex.js +1 -2
- package/dist/types/PossibleStatType.js +1 -2
- package/dist/types/PublicInterface.js +1 -2
- package/dist/types/ReadonlyMap.js +1 -4
- package/dist/types/ReadonlyRecord.js +1 -2
- package/dist/types/ReadonlySet.js +1 -4
- package/dist/types/StartsWithLowercase.js +1 -2
- package/dist/types/StartsWithUppercase.js +1 -2
- package/dist/types/TSTLClass.js +1 -2
- package/dist/types/Tuple.js +1 -2
- package/dist/types/TupleKeys.js +1 -2
- package/dist/types/TupleToIntersection.js +1 -2
- package/dist/types/TupleToUnion.js +1 -2
- package/dist/types/TupleWithLengthBetween.js +1 -2
- package/dist/types/TupleWithMaxLength.js +1 -2
- package/dist/types/UnionToIntersection.js +1 -2
- package/dist/types/UppercaseKeys.js +1 -2
- package/dist/types/WeightedArray.js +1 -2
- package/dist/types/WidenLiteral.js +1 -2
- package/dist/types/Writable.js +1 -2
- package/dist/types/private/CallbackTuple.js +1 -2
- package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
- package/package.json +3 -3
- package/src/interfaces/PlayerHealth.ts +12 -11
|
@@ -1,39 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
exports.isModdedCharacter = isModdedCharacter;
|
|
19
|
-
exports.isVanillaCharacter = isVanillaCharacter;
|
|
20
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
21
|
-
const constants_1 = require("../core/constants");
|
|
22
|
-
const constantsFirstLast_1 = require("../core/constantsFirstLast");
|
|
23
|
-
const characterDamageMultipliers_1 = require("../objects/characterDamageMultipliers");
|
|
24
|
-
const characterNames_1 = require("../objects/characterNames");
|
|
25
|
-
const characterSpritePNGFileNames_1 = require("../objects/characterSpritePNGFileNames");
|
|
26
|
-
const characterStartingCollectibleTypes_1 = require("../objects/characterStartingCollectibleTypes");
|
|
27
|
-
const characterStartingTrinketTypes_1 = require("../objects/characterStartingTrinketTypes");
|
|
28
|
-
const charactersThatStartWithAnActiveItemSet_1 = require("../sets/charactersThatStartWithAnActiveItemSet");
|
|
29
|
-
const charactersWithBlackHeartFromEternalHeartSet_1 = require("../sets/charactersWithBlackHeartFromEternalHeartSet");
|
|
30
|
-
const charactersWithFreeDevilDealsSet_1 = require("../sets/charactersWithFreeDevilDealsSet");
|
|
31
|
-
const charactersWithNoRedHeartsSet_1 = require("../sets/charactersWithNoRedHeartsSet");
|
|
32
|
-
const charactersWithNoSoulHeartsSet_1 = require("../sets/charactersWithNoSoulHeartsSet");
|
|
33
|
-
const lostStyleCharactersSet_1 = require("../sets/lostStyleCharactersSet");
|
|
34
|
-
const ReadonlySet_1 = require("../types/ReadonlySet");
|
|
35
|
-
const FLYING_CHARACTERS_SET = new ReadonlySet_1.ReadonlySet(constants_1.FLYING_CHARACTERS);
|
|
36
|
-
const MAIN_CHARACTERS_SET = new ReadonlySet_1.ReadonlySet(constants_1.MAIN_CHARACTERS);
|
|
1
|
+
import { PlayerType } from "isaac-typescript-definitions";
|
|
2
|
+
import { FLYING_CHARACTERS, MAIN_CHARACTERS } from "../core/constants";
|
|
3
|
+
import { LAST_VANILLA_CHARACTER } from "../core/constantsFirstLast";
|
|
4
|
+
import { CHARACTER_DAMAGE_MULTIPLIERS } from "../objects/characterDamageMultipliers";
|
|
5
|
+
import { CHARACTER_NAMES } from "../objects/characterNames";
|
|
6
|
+
import { CHARACTER_SPRITE_PNG_FILE_NAMES } from "../objects/characterSpritePNGFileNames";
|
|
7
|
+
import { CHARACTER_STARTING_COLLECTIBLE_TYPES } from "../objects/characterStartingCollectibleTypes";
|
|
8
|
+
import { CHARACTER_STARTING_TRINKET_TYPE } from "../objects/characterStartingTrinketTypes";
|
|
9
|
+
import { CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET } from "../sets/charactersThatStartWithAnActiveItemSet";
|
|
10
|
+
import { CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET } from "../sets/charactersWithBlackHeartFromEternalHeartSet";
|
|
11
|
+
import { CHARACTERS_WITH_FREE_DEVIL_DEALS_SET } from "../sets/charactersWithFreeDevilDealsSet";
|
|
12
|
+
import { CHARACTERS_WITH_NO_RED_HEARTS_SET } from "../sets/charactersWithNoRedHeartsSet";
|
|
13
|
+
import { CHARACTERS_WITH_NO_SOUL_HEARTS_SET } from "../sets/charactersWithNoSoulHeartsSet";
|
|
14
|
+
import { LOST_STYLE_CHARACTERS_SET } from "../sets/lostStyleCharactersSet";
|
|
15
|
+
import { ReadonlySet } from "../types/ReadonlySet";
|
|
16
|
+
const FLYING_CHARACTERS_SET = new ReadonlySet(FLYING_CHARACTERS);
|
|
17
|
+
const MAIN_CHARACTERS_SET = new ReadonlySet(MAIN_CHARACTERS);
|
|
37
18
|
const PNG_PATH_PREFIX = "characters/costumes";
|
|
38
19
|
/**
|
|
39
20
|
* Helper function to determine if the given character can have red heart containers. Returns true
|
|
@@ -41,31 +22,31 @@ const PNG_PATH_PREFIX = "characters/costumes";
|
|
|
41
22
|
* though coin containers are not technically the same as red heart containers. Returns false for
|
|
42
23
|
* characters like Blue Baby. Returns false for The Lost and Tainted Lost.
|
|
43
24
|
*/
|
|
44
|
-
function canCharacterHaveRedHearts(character) {
|
|
45
|
-
return !
|
|
25
|
+
export function canCharacterHaveRedHearts(character) {
|
|
26
|
+
return !CHARACTERS_WITH_NO_RED_HEARTS_SET.has(character);
|
|
46
27
|
}
|
|
47
28
|
/**
|
|
48
29
|
* Helper function to determine if the given character can have soul hearts. Returns true for
|
|
49
30
|
* characters like Isaac, Magdalene, or Cain. Returns false for characters like Bethany. Returns
|
|
50
31
|
* false for The Lost and Tainted Lost.
|
|
51
32
|
*/
|
|
52
|
-
function canCharacterHaveSoulHearts(character) {
|
|
53
|
-
return !
|
|
33
|
+
export function canCharacterHaveSoulHearts(character) {
|
|
34
|
+
return !CHARACTERS_WITH_NO_SOUL_HEARTS_SET.has(character);
|
|
54
35
|
}
|
|
55
36
|
/**
|
|
56
37
|
* Helper function for determining whether the given character can take free Devil Deals. (e.g. The
|
|
57
38
|
* Lost, Tainted Lost, etc.)
|
|
58
39
|
*/
|
|
59
|
-
function canCharacterTakeFreeDevilDeals(character) {
|
|
60
|
-
return
|
|
40
|
+
export function canCharacterTakeFreeDevilDeals(character) {
|
|
41
|
+
return CHARACTERS_WITH_FREE_DEVIL_DEALS_SET.has(character);
|
|
61
42
|
}
|
|
62
43
|
/**
|
|
63
44
|
* Normally, characters get a red heart container upon reaching a new floor with an eternal heart,
|
|
64
45
|
* but some characters grant a black heart instead. Returns true for Dark Judas and Tainted Judas.
|
|
65
46
|
* Otherwise, returns false.
|
|
66
47
|
*/
|
|
67
|
-
function doesCharacterGetBlackHeartFromEternalHeart(character) {
|
|
68
|
-
return
|
|
48
|
+
export function doesCharacterGetBlackHeartFromEternalHeart(character) {
|
|
49
|
+
return CHARACTERS_WITH_BLACK_HEART_FROM_ETERNAL_HEART_SET.has(character);
|
|
69
50
|
}
|
|
70
51
|
/**
|
|
71
52
|
* Helper function to determine if the specified character starts with an active item.
|
|
@@ -73,8 +54,8 @@ function doesCharacterGetBlackHeartFromEternalHeart(character) {
|
|
|
73
54
|
* For the purposes of this function, the save file is considered to be fully unlocked (e.g. Isaac
|
|
74
55
|
* is considered to starts with the D6, but this is not the case on a brand new save file).
|
|
75
56
|
*/
|
|
76
|
-
function doesCharacterStartWithActiveItem(character) {
|
|
77
|
-
return
|
|
57
|
+
export function doesCharacterStartWithActiveItem(character) {
|
|
58
|
+
return CHARACTERS_THAT_START_WITH_AN_ACTIVE_ITEM_SET.has(character);
|
|
78
59
|
}
|
|
79
60
|
/**
|
|
80
61
|
* Helper function to get the numerical damage multiplier for a character.
|
|
@@ -85,22 +66,22 @@ function doesCharacterStartWithActiveItem(character) {
|
|
|
85
66
|
* damage multiplier changes from 0.75 to 1 when she has Whore of Babylon
|
|
86
67
|
* active.
|
|
87
68
|
*/
|
|
88
|
-
function getCharacterDamageMultiplier(character, hasWhoreOfBabylon = false) {
|
|
89
|
-
if (hasWhoreOfBabylon && character ===
|
|
69
|
+
export function getCharacterDamageMultiplier(character, hasWhoreOfBabylon = false) {
|
|
70
|
+
if (hasWhoreOfBabylon && character === PlayerType.EVE) {
|
|
90
71
|
return 1;
|
|
91
72
|
}
|
|
92
|
-
return
|
|
73
|
+
return CHARACTER_DAMAGE_MULTIPLIERS[character];
|
|
93
74
|
}
|
|
94
75
|
/**
|
|
95
76
|
* - Most characters have a 56 frame death animation (i.e. the "Death" animation).
|
|
96
77
|
* - The Lost and Tainted Lost have a 38 frame death animation (i.e. the "LostDeath" animation).
|
|
97
78
|
* - Tainted Forgotten have a 20 frame death animation (i.e. the "ForgottenDeath" animation).
|
|
98
79
|
*/
|
|
99
|
-
function getCharacterDeathAnimationName(character) {
|
|
100
|
-
if (
|
|
80
|
+
export function getCharacterDeathAnimationName(character) {
|
|
81
|
+
if (LOST_STYLE_CHARACTERS_SET.has(character)) {
|
|
101
82
|
return "LostDeath";
|
|
102
83
|
}
|
|
103
|
-
if (character ===
|
|
84
|
+
if (character === PlayerType.FORGOTTEN_B) {
|
|
104
85
|
return "ForgottenDeath";
|
|
105
86
|
}
|
|
106
87
|
return "Death";
|
|
@@ -110,31 +91,31 @@ function getCharacterDeathAnimationName(character) {
|
|
|
110
91
|
* but with Keeper it is 3, and with Tainted Keeper it is 2. This does not account for Birthright or
|
|
111
92
|
* Mother's Kiss; use the `getPlayerMaxHeartContainers` helper function for that.
|
|
112
93
|
*/
|
|
113
|
-
function getCharacterMaxHeartContainers(character) {
|
|
94
|
+
export function getCharacterMaxHeartContainers(character) {
|
|
114
95
|
// 14
|
|
115
|
-
if (character ===
|
|
96
|
+
if (character === PlayerType.KEEPER) {
|
|
116
97
|
return 3;
|
|
117
98
|
}
|
|
118
99
|
// 16
|
|
119
|
-
if (character ===
|
|
100
|
+
if (character === PlayerType.FORGOTTEN) {
|
|
120
101
|
return 6;
|
|
121
102
|
}
|
|
122
103
|
// 17
|
|
123
|
-
if (character ===
|
|
104
|
+
if (character === PlayerType.SOUL) {
|
|
124
105
|
return 6;
|
|
125
106
|
}
|
|
126
107
|
// 33
|
|
127
|
-
if (character ===
|
|
108
|
+
if (character === PlayerType.KEEPER_B) {
|
|
128
109
|
return 2;
|
|
129
110
|
}
|
|
130
111
|
return 12;
|
|
131
112
|
}
|
|
132
113
|
/** Helper function to get the name of a character. Returns "Unknown" for modded characters. */
|
|
133
|
-
function getCharacterName(character) {
|
|
114
|
+
export function getCharacterName(character) {
|
|
134
115
|
if (isModdedCharacter(character)) {
|
|
135
116
|
return "Unknown";
|
|
136
117
|
}
|
|
137
|
-
return
|
|
118
|
+
return CHARACTER_NAMES[character];
|
|
138
119
|
}
|
|
139
120
|
/**
|
|
140
121
|
* Helper function to get the path to the sprite for a particular character.
|
|
@@ -142,8 +123,8 @@ function getCharacterName(character) {
|
|
|
142
123
|
* For example, the file path for `PlayerType.ISAAC` is
|
|
143
124
|
* "characters/costumes/character_001_isaac.png".
|
|
144
125
|
*/
|
|
145
|
-
function getCharacterSpritePNGFilePath(character) {
|
|
146
|
-
const fileName =
|
|
126
|
+
export function getCharacterSpritePNGFilePath(character) {
|
|
127
|
+
const fileName = CHARACTER_SPRITE_PNG_FILE_NAMES[character];
|
|
147
128
|
return `${PNG_PATH_PREFIX}/${fileName}`;
|
|
148
129
|
}
|
|
149
130
|
/**
|
|
@@ -152,8 +133,8 @@ function getCharacterSpritePNGFilePath(character) {
|
|
|
152
133
|
*
|
|
153
134
|
* Note that this will return an empty array for Eden and Tainted Eden.
|
|
154
135
|
*/
|
|
155
|
-
function getCharacterStartingCollectibleTypes(character) {
|
|
156
|
-
return
|
|
136
|
+
export function getCharacterStartingCollectibleTypes(character) {
|
|
137
|
+
return CHARACTER_STARTING_COLLECTIBLE_TYPES[character];
|
|
157
138
|
}
|
|
158
139
|
/**
|
|
159
140
|
* Helper function to get the trinket that is granted to a particular character at the beginning of
|
|
@@ -161,8 +142,8 @@ function getCharacterStartingCollectibleTypes(character) {
|
|
|
161
142
|
*
|
|
162
143
|
* Note that this will return undefined for Eden and Tainted Eden.
|
|
163
144
|
*/
|
|
164
|
-
function getCharacterStartingTrinketType(character) {
|
|
165
|
-
return
|
|
145
|
+
export function getCharacterStartingTrinketType(character) {
|
|
146
|
+
return CHARACTER_STARTING_TRINKET_TYPE[character];
|
|
166
147
|
}
|
|
167
148
|
/**
|
|
168
149
|
* Helper function to get the "main" version of the character. In other words, this is the character
|
|
@@ -174,58 +155,58 @@ function getCharacterStartingTrinketType(character) {
|
|
|
174
155
|
*
|
|
175
156
|
* For `PlayerType.POSSESSOR` (-1) and modded characters, the same character will be returned.
|
|
176
157
|
*/
|
|
177
|
-
function getMainCharacter(character) {
|
|
158
|
+
export function getMainCharacter(character) {
|
|
178
159
|
if (isMainCharacter(character) || isModdedCharacter(character)) {
|
|
179
160
|
return character;
|
|
180
161
|
}
|
|
181
162
|
switch (character) {
|
|
182
163
|
// -1
|
|
183
|
-
case
|
|
184
|
-
return
|
|
164
|
+
case PlayerType.POSSESSOR: {
|
|
165
|
+
return PlayerType.POSSESSOR;
|
|
185
166
|
}
|
|
186
167
|
// 11
|
|
187
|
-
case
|
|
188
|
-
return
|
|
168
|
+
case PlayerType.LAZARUS_2: {
|
|
169
|
+
return PlayerType.LAZARUS;
|
|
189
170
|
}
|
|
190
171
|
// 12
|
|
191
|
-
case
|
|
192
|
-
return
|
|
172
|
+
case PlayerType.DARK_JUDAS: {
|
|
173
|
+
return PlayerType.JUDAS;
|
|
193
174
|
}
|
|
194
175
|
// 17
|
|
195
|
-
case
|
|
196
|
-
return
|
|
176
|
+
case PlayerType.SOUL: {
|
|
177
|
+
return PlayerType.FORGOTTEN;
|
|
197
178
|
}
|
|
198
179
|
// 20
|
|
199
|
-
case
|
|
200
|
-
return
|
|
180
|
+
case PlayerType.ESAU: {
|
|
181
|
+
return PlayerType.JACOB;
|
|
201
182
|
}
|
|
202
183
|
// 38
|
|
203
|
-
case
|
|
204
|
-
return
|
|
184
|
+
case PlayerType.LAZARUS_2_B: {
|
|
185
|
+
return PlayerType.LAZARUS_2;
|
|
205
186
|
}
|
|
206
187
|
// 39
|
|
207
|
-
case
|
|
208
|
-
return
|
|
188
|
+
case PlayerType.JACOB_2_B: {
|
|
189
|
+
return PlayerType.JACOB_B;
|
|
209
190
|
}
|
|
210
191
|
// 40
|
|
211
|
-
case
|
|
212
|
-
return
|
|
192
|
+
case PlayerType.SOUL_B: {
|
|
193
|
+
return PlayerType.FORGOTTEN_B;
|
|
213
194
|
}
|
|
214
195
|
}
|
|
215
196
|
}
|
|
216
|
-
function isFlyingCharacter(character) {
|
|
197
|
+
export function isFlyingCharacter(character) {
|
|
217
198
|
return FLYING_CHARACTERS_SET.has(character);
|
|
218
199
|
}
|
|
219
200
|
/**
|
|
220
201
|
* Helper function to check if the provided character is one of the characters that are selectable
|
|
221
202
|
* from the main menu (and have achievements related to completing the various bosses and so on).
|
|
222
203
|
*/
|
|
223
|
-
function isMainCharacter(character) {
|
|
204
|
+
export function isMainCharacter(character) {
|
|
224
205
|
return MAIN_CHARACTERS_SET.has(character);
|
|
225
206
|
}
|
|
226
|
-
function isModdedCharacter(character) {
|
|
207
|
+
export function isModdedCharacter(character) {
|
|
227
208
|
return !isVanillaCharacter(character);
|
|
228
209
|
}
|
|
229
|
-
function isVanillaCharacter(character) {
|
|
230
|
-
return character <=
|
|
210
|
+
export function isVanillaCharacter(character) {
|
|
211
|
+
return character <= LAST_VANILLA_CHARACTER;
|
|
231
212
|
}
|
package/dist/functions/charge.js
CHANGED
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.getChargesAwayFromMax = getChargesAwayFromMax;
|
|
8
|
-
exports.getTotalCharge = getTotalCharge;
|
|
9
|
-
exports.getUsableActiveItemSlots = getUsableActiveItemSlots;
|
|
10
|
-
exports.isActiveSlotDoubleCharged = isActiveSlotDoubleCharged;
|
|
11
|
-
exports.playChargeSoundEffect = playChargeSoundEffect;
|
|
12
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
13
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
14
|
-
const collectibles_1 = require("./collectibles");
|
|
15
|
-
const playerCollectibles_1 = require("./playerCollectibles");
|
|
16
|
-
const playerIndex_1 = require("./playerIndex");
|
|
17
|
-
const roomShape_1 = require("./roomShape");
|
|
1
|
+
import { ActiveSlot, CollectibleType, ItemConfigChargeType, SoundEffect, TrinketType, } from "isaac-typescript-definitions";
|
|
2
|
+
import { game, sfxManager } from "../core/cachedClasses";
|
|
3
|
+
import { getCollectibleChargeType, getCollectibleMaxCharges, } from "./collectibles";
|
|
4
|
+
import { getActiveItemSlots } from "./playerCollectibles";
|
|
5
|
+
import { getPlayers } from "./playerIndex";
|
|
6
|
+
import { getRoomShapeCharges } from "./roomShape";
|
|
18
7
|
/**
|
|
19
8
|
* Helper function to add a charge to the player's active item. Will flash the HUD and play the
|
|
20
9
|
* appropriate sound effect, depending on whether the charge is partially full or completely full.
|
|
@@ -34,8 +23,8 @@ const roomShape_1 = require("./roomShape");
|
|
|
34
23
|
* only one away from a full charge, but the `numCharges` provided to this function was 2,
|
|
35
24
|
* then this function would return 1.
|
|
36
25
|
*/
|
|
37
|
-
function addCharge(player, activeSlot =
|
|
38
|
-
const hud =
|
|
26
|
+
export function addCharge(player, activeSlot = ActiveSlot.PRIMARY, numCharges = 1, playSoundEffect = true) {
|
|
27
|
+
const hud = game.GetHUD();
|
|
39
28
|
// Ensure that there is enough space on the active item to store these amount of charges. (If we
|
|
40
29
|
// add too many charges, it will grant orange "battery" charges, even if the player does not have
|
|
41
30
|
// The Battery.)
|
|
@@ -71,11 +60,11 @@ function addCharge(player, activeSlot = isaac_typescript_definitions_1.ActiveSlo
|
|
|
71
60
|
* is true.
|
|
72
61
|
* @param playSoundEffect Optional. Whether to play a charge-related sound effect. Default is true.
|
|
73
62
|
*/
|
|
74
|
-
function addRoomClearCharge(player, bigRoomDoubleCharge = true, playSoundEffect = true) {
|
|
63
|
+
export function addRoomClearCharge(player, bigRoomDoubleCharge = true, playSoundEffect = true) {
|
|
75
64
|
for (const activeSlot of [
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
65
|
+
ActiveSlot.PRIMARY,
|
|
66
|
+
ActiveSlot.SECONDARY,
|
|
67
|
+
ActiveSlot.POCKET,
|
|
79
68
|
]) {
|
|
80
69
|
addRoomClearChargeToSlot(player, activeSlot, bigRoomDoubleCharge, playSoundEffect);
|
|
81
70
|
}
|
|
@@ -93,8 +82,8 @@ function addRoomClearCharge(player, bigRoomDoubleCharge = true, playSoundEffect
|
|
|
93
82
|
* room for the purposes of calculating how much charge to grant. Default
|
|
94
83
|
* is true.
|
|
95
84
|
*/
|
|
96
|
-
function addRoomClearCharges(bigRoomDoubleCharge = true) {
|
|
97
|
-
for (const player of
|
|
85
|
+
export function addRoomClearCharges(bigRoomDoubleCharge = true) {
|
|
86
|
+
for (const player of getPlayers()) {
|
|
98
87
|
addRoomClearCharge(player, bigRoomDoubleCharge);
|
|
99
88
|
}
|
|
100
89
|
}
|
|
@@ -116,27 +105,27 @@ function addRoomClearCharges(bigRoomDoubleCharge = true) {
|
|
|
116
105
|
* is true.
|
|
117
106
|
* @param playSoundEffect Optional. Whether to play a charge-related sound effect. Default is true.
|
|
118
107
|
*/
|
|
119
|
-
function addRoomClearChargeToSlot(player, activeSlot =
|
|
108
|
+
export function addRoomClearChargeToSlot(player, activeSlot = ActiveSlot.PRIMARY, bigRoomDoubleCharge = true, playSoundEffect = true) {
|
|
120
109
|
const activeItem = player.GetActiveItem(activeSlot);
|
|
121
|
-
if (activeItem ===
|
|
110
|
+
if (activeItem === CollectibleType.NULL) {
|
|
122
111
|
return;
|
|
123
112
|
}
|
|
124
113
|
// Certain collectibles have special charge mechanisms and are not charged upon a room being
|
|
125
114
|
// cleared.
|
|
126
|
-
const chargeType =
|
|
127
|
-
if (chargeType ===
|
|
115
|
+
const chargeType = getCollectibleChargeType(activeItem);
|
|
116
|
+
if (chargeType === ItemConfigChargeType.SPECIAL) {
|
|
128
117
|
return;
|
|
129
118
|
}
|
|
130
|
-
const room =
|
|
119
|
+
const room = game.GetRoom();
|
|
131
120
|
const roomShape = room.GetRoomShape();
|
|
132
121
|
// Big rooms grant two charges and normal rooms grant one charge.
|
|
133
|
-
let numCharges = bigRoomDoubleCharge ?
|
|
122
|
+
let numCharges = bigRoomDoubleCharge ? getRoomShapeCharges(roomShape) : 1;
|
|
134
123
|
// Handle the special case of a timed item. When clearing a room with a timed item, it should
|
|
135
124
|
// become fully charged.
|
|
136
|
-
if (chargeType ===
|
|
125
|
+
if (chargeType === ItemConfigChargeType.TIMED) {
|
|
137
126
|
// The charges will become clamped to the proper amount in the `addCharge` function. (If the
|
|
138
127
|
// item is at 50% charge and the player has The Battery, it should go to 150% charged.)
|
|
139
|
-
numCharges =
|
|
128
|
+
numCharges = getCollectibleMaxCharges(activeItem);
|
|
140
129
|
}
|
|
141
130
|
addCharge(player, activeSlot, numCharges, playSoundEffect);
|
|
142
131
|
}
|
|
@@ -151,11 +140,11 @@ function addRoomClearChargeToSlot(player, activeSlot = isaac_typescript_definiti
|
|
|
151
140
|
* @param player The player to get the charges from.
|
|
152
141
|
* @param activeSlot Optional. The slot to get the charges from. Default is `ActiveSlot.PRIMARY`.
|
|
153
142
|
*/
|
|
154
|
-
function getChargesAwayFromMax(player, activeSlot =
|
|
143
|
+
export function getChargesAwayFromMax(player, activeSlot = ActiveSlot.PRIMARY) {
|
|
155
144
|
const totalCharge = getTotalCharge(player, activeSlot);
|
|
156
145
|
const activeItem = player.GetActiveItem(activeSlot);
|
|
157
|
-
const hasBattery = player.HasCollectible(
|
|
158
|
-
const maxCharges =
|
|
146
|
+
const hasBattery = player.HasCollectible(CollectibleType.BATTERY);
|
|
147
|
+
const maxCharges = getCollectibleMaxCharges(activeItem);
|
|
159
148
|
const effectiveMaxCharges = hasBattery ? maxCharges * 2 : maxCharges;
|
|
160
149
|
return effectiveMaxCharges - totalCharge;
|
|
161
150
|
}
|
|
@@ -167,7 +156,7 @@ function getChargesAwayFromMax(player, activeSlot = isaac_typescript_definitions
|
|
|
167
156
|
* @param player The player to get the charges from.
|
|
168
157
|
* @param activeSlot Optional. The slot to get the charges from. Default is `ActiveSlot.PRIMARY`.
|
|
169
158
|
*/
|
|
170
|
-
function getTotalCharge(player, activeSlot =
|
|
159
|
+
export function getTotalCharge(player, activeSlot = ActiveSlot.PRIMARY) {
|
|
171
160
|
const activeCharge = player.GetActiveCharge(activeSlot);
|
|
172
161
|
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
173
162
|
return activeCharge + batteryCharge;
|
|
@@ -177,9 +166,9 @@ function getTotalCharge(player, activeSlot = isaac_typescript_definitions_1.Acti
|
|
|
177
166
|
* in and have enough charge to be used. Returns an empty array if the player does not have the
|
|
178
167
|
* collectible in any active slot or does not have enough charges.
|
|
179
168
|
*/
|
|
180
|
-
function getUsableActiveItemSlots(player, collectibleType) {
|
|
181
|
-
const maxCharges =
|
|
182
|
-
const activeSlots =
|
|
169
|
+
export function getUsableActiveItemSlots(player, collectibleType) {
|
|
170
|
+
const maxCharges = getCollectibleMaxCharges(collectibleType);
|
|
171
|
+
const activeSlots = getActiveItemSlots(player, collectibleType);
|
|
183
172
|
return activeSlots.filter((activeSlot) => {
|
|
184
173
|
const totalCharge = getTotalCharge(player, activeSlot);
|
|
185
174
|
return totalCharge >= maxCharges;
|
|
@@ -192,10 +181,10 @@ function getUsableActiveItemSlots(player, collectibleType) {
|
|
|
192
181
|
* @param player The player to check.
|
|
193
182
|
* @param activeSlot Optional. The slot to check. Default is `ActiveSlot.PRIMARY`.
|
|
194
183
|
*/
|
|
195
|
-
function isActiveSlotDoubleCharged(player, activeSlot =
|
|
184
|
+
export function isActiveSlotDoubleCharged(player, activeSlot = ActiveSlot.PRIMARY) {
|
|
196
185
|
const collectibleType = player.GetActiveItem(activeSlot);
|
|
197
186
|
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
198
|
-
const maxCharges =
|
|
187
|
+
const maxCharges = getCollectibleMaxCharges(collectibleType);
|
|
199
188
|
return batteryCharge >= maxCharges;
|
|
200
189
|
}
|
|
201
190
|
/**
|
|
@@ -206,24 +195,24 @@ function isActiveSlotDoubleCharged(player, activeSlot = isaac_typescript_definit
|
|
|
206
195
|
* @param player The player to play the sound effect for.
|
|
207
196
|
* @param activeSlot Optional. The slot that was just charged. Default is `ActiveSlot.PRIMARY`.
|
|
208
197
|
*/
|
|
209
|
-
function playChargeSoundEffect(player, activeSlot =
|
|
198
|
+
export function playChargeSoundEffect(player, activeSlot = ActiveSlot.PRIMARY) {
|
|
210
199
|
for (const soundEffect of [
|
|
211
|
-
|
|
212
|
-
|
|
200
|
+
SoundEffect.BATTERY_CHARGE, // 170
|
|
201
|
+
SoundEffect.BEEP, // 171
|
|
213
202
|
]) {
|
|
214
|
-
|
|
203
|
+
sfxManager.Stop(soundEffect);
|
|
215
204
|
}
|
|
216
205
|
const chargeSoundEffect = shouldPlayFullRechargeSound(player, activeSlot)
|
|
217
|
-
?
|
|
218
|
-
:
|
|
219
|
-
|
|
206
|
+
? SoundEffect.BATTERY_CHARGE
|
|
207
|
+
: SoundEffect.BEEP;
|
|
208
|
+
sfxManager.Play(chargeSoundEffect);
|
|
220
209
|
}
|
|
221
210
|
/**
|
|
222
211
|
* The AAA Battery should grant an extra charge when the active item is one away from being fully
|
|
223
212
|
* charged.
|
|
224
213
|
*/
|
|
225
214
|
function getChargesToAddWithAAAModifier(player, activeSlot, chargesToAdd) {
|
|
226
|
-
const hasAAABattery = player.HasTrinket(
|
|
215
|
+
const hasAAABattery = player.HasTrinket(TrinketType.AAA_BATTERY);
|
|
227
216
|
if (!hasAAABattery) {
|
|
228
217
|
return chargesToAdd;
|
|
229
218
|
}
|
|
@@ -235,8 +224,8 @@ function shouldPlayFullRechargeSound(player, activeSlot) {
|
|
|
235
224
|
const activeItem = player.GetActiveItem(activeSlot);
|
|
236
225
|
const activeCharge = player.GetActiveCharge(activeSlot);
|
|
237
226
|
const batteryCharge = player.GetBatteryCharge(activeSlot);
|
|
238
|
-
const hasBattery = player.HasCollectible(
|
|
239
|
-
const maxCharges =
|
|
227
|
+
const hasBattery = player.HasCollectible(CollectibleType.BATTERY);
|
|
228
|
+
const maxCharges = getCollectibleMaxCharges(activeItem);
|
|
240
229
|
// If we do not have The Battery, play the full recharge sound if we are now fully charged.
|
|
241
230
|
if (!hasBattery) {
|
|
242
231
|
// We cannot use the `EntityPlayer.NeedsCharge` method because it does not work properly for
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.newChargeBarSprites = newChargeBarSprites;
|
|
4
|
-
exports.renderChargeBar = renderChargeBar;
|
|
5
1
|
const CHARGE_BAR_ANM2 = "gfx/ui/ui_chargebar.anm2";
|
|
6
2
|
/**
|
|
7
3
|
* Constructor for a `ChargeBarSprites` object. For more information, see the `renderChargeBar`
|
|
@@ -10,7 +6,7 @@ const CHARGE_BAR_ANM2 = "gfx/ui/ui_chargebar.anm2";
|
|
|
10
6
|
* Note that this is for the vertical charge bar that represents the number of charges that an
|
|
11
7
|
* active item has, not the circular charge bar that shows e.g. the charge rate of Brimstone.
|
|
12
8
|
*/
|
|
13
|
-
function newChargeBarSprites(maxCharges) {
|
|
9
|
+
export function newChargeBarSprites(maxCharges) {
|
|
14
10
|
const back = Sprite();
|
|
15
11
|
back.Load(CHARGE_BAR_ANM2, true);
|
|
16
12
|
back.Play("BarEmpty", true);
|
|
@@ -38,7 +34,7 @@ function newChargeBarSprites(maxCharges) {
|
|
|
38
34
|
* Note that this is for the vertical charge bar that represents the number of charges that an
|
|
39
35
|
* active item has, not the circular charge bar that shows e.g. the charge rate of Brimstone.
|
|
40
36
|
*/
|
|
41
|
-
function renderChargeBar(sprites, position, normalCharges, batteryCharges) {
|
|
37
|
+
export function renderChargeBar(sprites, position, normalCharges, batteryCharges) {
|
|
42
38
|
sprites.back.Render(position);
|
|
43
39
|
const normalChargesClamp = getChargeBarClamp(normalCharges, sprites.maxCharges);
|
|
44
40
|
sprites.meter.Render(position, normalChargesClamp);
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const cachedClasses_1 = require("../core/cachedClasses");
|
|
7
|
-
const types_1 = require("./types");
|
|
8
|
-
function collectibleHasTag(collectibleOrCollectibleType, tag) {
|
|
9
|
-
const collectibleType = (0, types_1.isInteger)(collectibleOrCollectibleType)
|
|
1
|
+
import { ItemConfigTag } from "isaac-typescript-definitions";
|
|
2
|
+
import { itemConfig } from "../core/cachedClasses";
|
|
3
|
+
import { isInteger } from "./types";
|
|
4
|
+
export function collectibleHasTag(collectibleOrCollectibleType, tag) {
|
|
5
|
+
const collectibleType = isInteger(collectibleOrCollectibleType)
|
|
10
6
|
? collectibleOrCollectibleType
|
|
11
7
|
: collectibleOrCollectibleType.SubType;
|
|
12
|
-
const itemConfigItem =
|
|
8
|
+
const itemConfigItem = itemConfig.GetCollectible(collectibleType);
|
|
13
9
|
if (itemConfigItem === undefined) {
|
|
14
10
|
return false;
|
|
15
11
|
}
|
|
16
12
|
return itemConfigItem.HasTags(tag);
|
|
17
13
|
}
|
|
18
|
-
function isQuestCollectible(collectibleOrCollectibleType) {
|
|
19
|
-
const collectibleType =
|
|
14
|
+
export function isQuestCollectible(collectibleOrCollectibleType) {
|
|
15
|
+
const collectibleType = isInteger(collectibleOrCollectibleType)
|
|
20
16
|
? collectibleOrCollectibleType
|
|
21
17
|
: collectibleOrCollectibleType.SubType;
|
|
22
|
-
return collectibleHasTag(collectibleType,
|
|
18
|
+
return collectibleHasTag(collectibleType, ItemConfigTag.QUEST);
|
|
23
19
|
}
|