isaacscript-common 87.9.7 → 87.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cachedEnumValues.js +29 -32
- package/dist/callbackClasses.js +142 -289
- package/dist/callbacks.js +147 -183
- package/dist/classes/DefaultMap.js +4 -8
- package/dist/classes/ModFeature.js +21 -25
- package/dist/classes/ModUpgraded.js +43 -47
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +6 -10
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +7 -11
- package/dist/classes/callbacks/InputActionFilter.js +4 -8
- package/dist/classes/callbacks/InputActionPlayer.js +4 -8
- package/dist/classes/callbacks/PostAmbushFinished.js +10 -14
- package/dist/classes/callbacks/PostAmbushStarted.js +10 -14
- package/dist/classes/callbacks/PostBombExploded.js +8 -12
- package/dist/classes/callbacks/PostBombInitFilter.js +6 -10
- package/dist/classes/callbacks/PostBombInitLate.js +6 -10
- package/dist/classes/callbacks/PostBombRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostBombUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostBoneSwing.js +7 -11
- package/dist/classes/callbacks/PostCollectibleEmpty.js +6 -10
- package/dist/classes/callbacks/PostCursedTeleport.js +30 -34
- package/dist/classes/callbacks/PostCustomRevive.js +4 -8
- package/dist/classes/callbacks/PostDiceRoomActivated.js +9 -13
- package/dist/classes/callbacks/PostDoorRender.js +8 -12
- package/dist/classes/callbacks/PostDoorUpdate.js +8 -12
- package/dist/classes/callbacks/PostEffectInitFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectInitLate.js +6 -10
- package/dist/classes/callbacks/PostEffectRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostEffectStateChanged.js +8 -12
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityKillFilter.js +6 -10
- package/dist/classes/callbacks/PostEntityRemoveFilter.js +6 -10
- package/dist/classes/callbacks/PostEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarInitLate.js +6 -10
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +8 -12
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostFirstEsauJr.js +4 -8
- package/dist/classes/callbacks/PostFirstFlip.js +4 -8
- package/dist/classes/callbacks/PostFlip.js +4 -8
- package/dist/classes/callbacks/PostGameEndFilter.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReordered.js +6 -10
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +6 -10
- package/dist/classes/callbacks/PostGreedModeWave.js +7 -11
- package/dist/classes/callbacks/PostGridEntityBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +6 -10
- package/dist/classes/callbacks/PostGridEntityInit.js +6 -10
- package/dist/classes/callbacks/PostGridEntityRemove.js +4 -8
- package/dist/classes/callbacks/PostGridEntityRender.js +6 -10
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +6 -10
- package/dist/classes/callbacks/PostGridEntityUpdate.js +6 -10
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +15 -19
- package/dist/classes/callbacks/PostItemDischarge.js +23 -27
- package/dist/classes/callbacks/PostItemPickup.js +6 -10
- package/dist/classes/callbacks/PostKeyboardChanged.js +9 -13
- package/dist/classes/callbacks/PostKnifeInitFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeInitLate.js +6 -10
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserInitLate.js +6 -10
- package/dist/classes/callbacks/PostLaserRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCDeathFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCInitLate.js +6 -10
- package/dist/classes/callbacks/PostNPCRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostNPCStateChanged.js +8 -12
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostNewLevelReordered.js +6 -10
- package/dist/classes/callbacks/PostNewRoomEarly.js +17 -21
- package/dist/classes/callbacks/PostNewRoomReordered.js +6 -10
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPickupChanged.js +6 -10
- package/dist/classes/callbacks/PostPickupCollect.js +8 -12
- package/dist/classes/callbacks/PostPickupInitFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupInitFirst.js +10 -14
- package/dist/classes/callbacks/PostPickupInitLate.js +6 -10
- package/dist/classes/callbacks/PostPickupRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +4 -8
- package/dist/classes/callbacks/PostPickupStateChanged.js +8 -12
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPitRender.js +8 -12
- package/dist/classes/callbacks/PostPitUpdate.js +8 -12
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +14 -18
- package/dist/classes/callbacks/PostPlayerChangeStat.js +26 -30
- package/dist/classes/callbacks/PostPlayerChangeType.js +11 -15
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +6 -10
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +6 -10
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +24 -28
- package/dist/classes/callbacks/PostPlayerInitFirst.js +12 -16
- package/dist/classes/callbacks/PostPlayerInitLate.js +9 -13
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +6 -10
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +6 -10
- package/dist/classes/callbacks/PostPoopRender.js +8 -12
- package/dist/classes/callbacks/PostPoopUpdate.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateRender.js +8 -12
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +8 -12
- package/dist/classes/callbacks/PostProjectileInitFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileInitLate.js +6 -10
- package/dist/classes/callbacks/PostProjectileKill.js +8 -12
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostPurchase.js +21 -25
- package/dist/classes/callbacks/PostRockRender.js +8 -12
- package/dist/classes/callbacks/PostRockUpdate.js +8 -12
- package/dist/classes/callbacks/PostRoomClearChanged.js +9 -13
- package/dist/classes/callbacks/PostSacrifice.js +12 -16
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +6 -10
- package/dist/classes/callbacks/PostSlotCollision.js +8 -12
- package/dist/classes/callbacks/PostSlotDestroyed.js +6 -10
- package/dist/classes/callbacks/PostSlotInit.js +6 -10
- package/dist/classes/callbacks/PostSlotRender.js +6 -10
- package/dist/classes/callbacks/PostSlotUpdate.js +6 -10
- package/dist/classes/callbacks/PostSpikesRender.js +8 -12
- package/dist/classes/callbacks/PostSpikesUpdate.js +8 -12
- package/dist/classes/callbacks/PostTNTRender.js +8 -12
- package/dist/classes/callbacks/PostTNTUpdate.js +8 -12
- package/dist/classes/callbacks/PostTearInitFilter.js +6 -10
- package/dist/classes/callbacks/PostTearInitLate.js +6 -10
- package/dist/classes/callbacks/PostTearInitVeryLate.js +6 -10
- package/dist/classes/callbacks/PostTearKill.js +8 -12
- package/dist/classes/callbacks/PostTearRenderFilter.js +6 -10
- package/dist/classes/callbacks/PostTearUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PostTransformation.js +10 -14
- package/dist/classes/callbacks/PostTrinketBreak.js +16 -20
- package/dist/classes/callbacks/PostUsePillFilter.js +18 -22
- package/dist/classes/callbacks/PreBerserkDeath.js +14 -18
- package/dist/classes/callbacks/PreBombCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreCustomRevive.js +6 -10
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreGetPedestal.js +8 -12
- package/dist/classes/callbacks/PreItemPickup.js +6 -10
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +6 -10
- package/dist/classes/callbacks/PreNewLevel.js +10 -14
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +6 -10
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +4 -8
- package/dist/classes/callbacks/PreTearCollisionFilter.js +6 -10
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +46 -50
- package/dist/classes/features/callbackLogic/CustomRevive.js +28 -32
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +11 -15
- package/dist/classes/features/callbackLogic/FlipDetection.js +11 -15
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +26 -30
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +10 -14
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +6 -10
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +12 -16
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +17 -21
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +6 -10
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +39 -43
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +18 -22
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +17 -21
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +8 -12
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +9 -13
- package/dist/classes/features/other/CharacterHealthConversion.js +13 -17
- package/dist/classes/features/other/CharacterStats.js +9 -13
- package/dist/classes/features/other/CollectibleItemPoolType.js +17 -21
- package/dist/classes/features/other/CustomHotkeys.js +15 -19
- package/dist/classes/features/other/CustomItemPools.js +20 -24
- package/dist/classes/features/other/CustomPickups.js +15 -19
- package/dist/classes/features/other/CustomStages.js +116 -153
- package/dist/classes/features/other/CustomTrapdoors.js +119 -123
- package/dist/classes/features/other/DebugDisplay.js +77 -81
- package/dist/classes/features/other/DeployJSONRoom.js +65 -69
- package/dist/classes/features/other/DisableAllSound.js +14 -18
- package/dist/classes/features/other/DisableInputs.js +24 -28
- package/dist/classes/features/other/EdenStartingStatsHealth.js +36 -40
- package/dist/classes/features/other/ExtraConsoleCommands.js +65 -102
- package/dist/classes/features/other/FadeInRemover.js +9 -13
- package/dist/classes/features/other/FastReset.js +18 -22
- package/dist/classes/features/other/FlyingDetection.js +10 -14
- package/dist/classes/features/other/ForgottenSwitch.js +8 -12
- package/dist/classes/features/other/ItemPoolDetection.js +35 -39
- package/dist/classes/features/other/ModdedElementDetection.js +43 -47
- package/dist/classes/features/other/ModdedElementSets.js +135 -139
- package/dist/classes/features/other/NoSirenSteal.js +7 -11
- package/dist/classes/features/other/Pause.js +48 -52
- package/dist/classes/features/other/PersistentEntities.js +16 -20
- package/dist/classes/features/other/PickupIndexCreation.js +31 -35
- package/dist/classes/features/other/PlayerCollectibleTracking.js +18 -22
- package/dist/classes/features/other/PonyDetection.js +22 -26
- package/dist/classes/features/other/PressInput.js +10 -14
- package/dist/classes/features/other/PreventChildEntities.js +6 -10
- package/dist/classes/features/other/PreventGridEntityRespawn.js +34 -38
- package/dist/classes/features/other/RerunDetection.js +11 -15
- package/dist/classes/features/other/RoomClearFrame.js +11 -15
- package/dist/classes/features/other/RoomHistory.js +30 -34
- package/dist/classes/features/other/RunInNFrames.js +24 -28
- package/dist/classes/features/other/RunNextRoom.js +8 -12
- package/dist/classes/features/other/RunNextRun.js +8 -12
- package/dist/classes/features/other/SaveDataManager.js +61 -65
- package/dist/classes/features/other/SpawnRockAltRewards.js +115 -119
- package/dist/classes/features/other/StageHistory.js +76 -80
- package/dist/classes/features/other/StartAmbush.js +12 -16
- package/dist/classes/features/other/TaintedLazarusPlayers.js +10 -14
- package/dist/classes/features/other/UnlockAchievementsDetection.js +10 -14
- package/dist/classes/features/other/customStages/backdrop.js +68 -71
- package/dist/classes/features/other/customStages/constants.js +7 -10
- package/dist/classes/features/other/customStages/gridEntities.js +23 -30
- package/dist/classes/features/other/customStages/shadows.js +27 -30
- package/dist/classes/features/other/customStages/streakText.js +55 -60
- package/dist/classes/features/other/customStages/utils.js +13 -17
- package/dist/classes/features/other/customStages/v.js +4 -7
- package/dist/classes/features/other/customStages/versusScreen.js +46 -50
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +8 -12
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +8 -12
- package/dist/classes/features/other/debugDisplay/utils.js +6 -10
- package/dist/classes/features/other/extraConsoleCommands/commands.js +411 -557
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +47 -57
- package/dist/classes/features/other/extraConsoleCommands/v.js +1 -4
- package/dist/classes/features/other/saveDataManager/constants.js +1 -4
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +17 -21
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +19 -22
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +20 -25
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +13 -16
- package/dist/classes/private/CustomCallback.js +4 -8
- package/dist/classes/private/Feature.js +1 -5
- package/dist/core/cachedClasses.js +12 -15
- package/dist/core/constants.js +126 -130
- package/dist/core/constantsFirstLast.js +22 -25
- package/dist/core/constantsVanilla.js +25 -28
- package/dist/core/upgradeMod.js +7 -10
- package/dist/decorators.js +6 -10
- package/dist/enums/AmbushType.js +2 -5
- package/dist/enums/CornerType.js +2 -5
- package/dist/enums/HealthType.js +2 -5
- package/dist/enums/ISCFeature.js +2 -5
- package/dist/enums/LadderSubTypeCustom.js +2 -5
- package/dist/enums/ModCallbackCustom.js +2 -5
- package/dist/enums/MysteriousPaperEffect.js +2 -5
- package/dist/enums/PlayerStat.js +2 -5
- package/dist/enums/PocketItemType.js +2 -5
- package/dist/enums/RockAltType.js +2 -5
- package/dist/enums/SaveDataKey.js +2 -5
- package/dist/enums/SerializationType.js +2 -5
- package/dist/enums/SlotDestructionType.js +2 -5
- package/dist/enums/private/GridEntityTypeCustom.js +1 -4
- package/dist/enums/private/SerializationBrand.js +2 -5
- package/dist/enums/private/StageTravelState.js +2 -5
- package/dist/enums/private/TrapdoorAnimation.js +2 -5
- package/dist/enums/private/UIStreakAnimation.js +2 -5
- package/dist/features.js +138 -141
- package/dist/functions/ambush.js +9 -12
- package/dist/functions/array.js +45 -76
- package/dist/functions/arrayLua.js +7 -16
- package/dist/functions/benchmark.js +4 -7
- package/dist/functions/bitSet128.js +19 -26
- package/dist/functions/bitwise.js +14 -23
- package/dist/functions/bombs.js +1 -4
- package/dist/functions/bosses.js +68 -85
- package/dist/functions/cards.js +44 -62
- package/dist/functions/challenges.js +28 -39
- package/dist/functions/characters.js +68 -87
- package/dist/functions/charge.js +41 -52
- package/dist/functions/chargeBar.js +2 -6
- package/dist/functions/collectibleTag.js +9 -13
- package/dist/functions/collectibles.js +133 -172
- package/dist/functions/color.js +29 -38
- package/dist/functions/console.js +4 -8
- package/dist/functions/curses.js +6 -10
- package/dist/functions/debugFunctions.js +7 -14
- package/dist/functions/decorators.js +13 -19
- package/dist/functions/deepCopy.js +96 -99
- package/dist/functions/deepCopyTests.js +56 -59
- package/dist/functions/dimensions.js +10 -14
- package/dist/functions/direction.js +22 -30
- package/dist/functions/doors.js +104 -154
- package/dist/functions/easing.js +30 -62
- package/dist/functions/effects.js +6 -10
- package/dist/functions/emptyRoom.js +30 -34
- package/dist/functions/entities.js +88 -115
- package/dist/functions/entitiesSpecific.js +83 -125
- package/dist/functions/entityTypes.js +3 -6
- package/dist/functions/enums.js +27 -41
- package/dist/functions/external.js +4 -8
- package/dist/functions/familiars.js +17 -25
- package/dist/functions/flag.js +10 -19
- package/dist/functions/frames.js +31 -51
- package/dist/functions/globals.js +26 -66
- package/dist/functions/gridEntities.js +231 -269
- package/dist/functions/gridEntitiesSpecific.js +86 -126
- package/dist/functions/gridIndex.js +8 -11
- package/dist/functions/hash.js +1 -4
- package/dist/functions/hex.js +7 -11
- package/dist/functions/input.js +65 -88
- package/dist/functions/isaacAPIClass.js +28 -53
- package/dist/functions/itemPool.js +39 -48
- package/dist/functions/jsonHelpers.js +5 -42
- package/dist/functions/jsonRoom.js +39 -46
- package/dist/functions/kColor.js +30 -39
- package/dist/functions/language.js +3 -6
- package/dist/functions/level.js +20 -26
- package/dist/functions/levelGrid.js +81 -108
- package/dist/functions/log.js +6 -12
- package/dist/functions/logEntities.js +49 -59
- package/dist/functions/logMisc.js +183 -214
- package/dist/functions/map.js +10 -20
- package/dist/functions/math.js +16 -31
- package/dist/functions/merge.js +48 -51
- package/dist/functions/mergeTests.js +34 -37
- package/dist/functions/minimap.js +34 -46
- package/dist/functions/modFeatures.js +1 -4
- package/dist/functions/newArray.js +5 -8
- package/dist/functions/nextStage.js +63 -67
- package/dist/functions/npcDataStructures.js +9 -20
- package/dist/functions/npcs.js +37 -45
- package/dist/functions/pickupVariants.js +26 -39
- package/dist/functions/pickups.js +43 -59
- package/dist/functions/pickupsSpecific.js +76 -118
- package/dist/functions/pills.js +52 -72
- package/dist/functions/playerCenter.js +13 -16
- package/dist/functions/playerCollectibles.js +59 -79
- package/dist/functions/playerDataStructures.js +18 -29
- package/dist/functions/playerEffects.js +12 -19
- package/dist/functions/playerHealth.js +91 -113
- package/dist/functions/playerIndex.js +22 -33
- package/dist/functions/playerTrinkets.js +31 -43
- package/dist/functions/players.js +87 -126
- package/dist/functions/pocketItems.js +33 -43
- package/dist/functions/positionVelocity.js +23 -32
- package/dist/functions/pressurePlate.js +7 -10
- package/dist/functions/projectiles.js +11 -15
- package/dist/functions/random.js +8 -13
- package/dist/functions/readOnly.js +3 -8
- package/dist/functions/render.js +7 -12
- package/dist/functions/revive.js +38 -45
- package/dist/functions/rng.js +31 -44
- package/dist/functions/rockAlt.js +18 -22
- package/dist/functions/roomData.js +24 -40
- package/dist/functions/roomGrid.js +17 -25
- package/dist/functions/roomShape.js +39 -55
- package/dist/functions/roomShapeWalls.js +67 -71
- package/dist/functions/roomTransition.js +13 -17
- package/dist/functions/rooms.js +181 -244
- package/dist/functions/run.js +29 -39
- package/dist/functions/seeds.js +6 -10
- package/dist/functions/serialization.js +27 -34
- package/dist/functions/set.js +24 -40
- package/dist/functions/slots.js +18 -22
- package/dist/functions/sort.js +9 -15
- package/dist/functions/sound.js +12 -16
- package/dist/functions/spawnCollectible.js +21 -26
- package/dist/functions/sprites.js +16 -24
- package/dist/functions/stage.js +122 -164
- package/dist/functions/stats.js +37 -43
- package/dist/functions/storyBosses.js +36 -40
- package/dist/functions/string.js +19 -33
- package/dist/functions/table.js +21 -31
- package/dist/functions/tears.js +6 -14
- package/dist/functions/transformations.js +35 -42
- package/dist/functions/trinketGive.js +29 -36
- package/dist/functions/trinkets.js +45 -60
- package/dist/functions/tstlClass.js +11 -20
- package/dist/functions/types.js +22 -46
- package/dist/functions/ui.js +25 -40
- package/dist/functions/utils.js +22 -36
- package/dist/functions/vector.js +33 -46
- package/dist/functions/versusScreen.js +12 -18
- package/dist/functions/weighted.js +8 -12
- package/dist/index.js +150 -166
- package/dist/indexLua.js +151 -167
- package/dist/interfaces/ChargeBarSprites.js +1 -2
- package/dist/interfaces/Corner.js +1 -2
- package/dist/interfaces/CustomStageTSConfig.js +1 -2
- package/dist/interfaces/GridEntityCustomData.js +1 -2
- package/dist/interfaces/JSONRoomsFile.js +1 -2
- package/dist/interfaces/PlayerHealth.js +1 -2
- package/dist/interfaces/PlayerStats.js +2 -4
- package/dist/interfaces/PocketItemDescription.js +1 -2
- package/dist/interfaces/RoomDescription.js +1 -2
- package/dist/interfaces/SaveData.js +1 -2
- package/dist/interfaces/StageHistoryEntry.js +1 -2
- package/dist/interfaces/TSTLClassMetatable.js +1 -2
- package/dist/interfaces/TrinketSituation.js +1 -2
- package/dist/interfaces/private/AddCallbackParametersCustom.js +2 -4
- package/dist/interfaces/private/CustomStage.js +1 -2
- package/dist/interfaces/private/CustomTrapdoorDescription.js +1 -2
- package/dist/interfaces/private/ModUpgradedInterface.js +1 -2
- package/dist/isaacscript-common.lua +1 -1
- package/dist/maps/PHDPillConversionsMap.js +19 -22
- package/dist/maps/cardNameToTypeMap.js +205 -208
- package/dist/maps/characterNameToTypeMap.js +85 -88
- package/dist/maps/collectibleNameToTypeMap.js +5 -8
- package/dist/maps/defaultPlayerStatMap.js +10 -13
- package/dist/maps/entityTypeVariantToBossIDMap.js +3 -6
- package/dist/maps/falsePHDPillConversionsMap.js +33 -36
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +15 -18
- package/dist/maps/gridEntityXMLMap.js +52 -55
- package/dist/maps/itemPoolTypeToItemPoolName.js +33 -36
- package/dist/maps/keyboardToStringMap.js +66 -69
- package/dist/maps/pillNameToEffectMap.js +83 -86
- package/dist/maps/roomNameToTypeMap.js +38 -41
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +9 -12
- package/dist/maps/transformationNameToPlayerFormMap.js +30 -33
- package/dist/maps/trinketNameToTypeMap.js +5 -8
- package/dist/objects/LRoomShapeToRectangles.js +22 -25
- package/dist/objects/backdropTypeToRockAltType.js +65 -68
- package/dist/objects/batteryNames.js +8 -11
- package/dist/objects/bombNames.js +11 -14
- package/dist/objects/bossIDToEntityTypeVariant.js +116 -119
- package/dist/objects/bossNamePNGFileNames.js +104 -107
- package/dist/objects/bossNames.js +105 -108
- package/dist/objects/bossPortraitPNGFileNames.js +104 -107
- package/dist/objects/cardDescriptions.js +101 -104
- package/dist/objects/cardNames.js +101 -104
- package/dist/objects/challengeBosses.js +49 -52
- package/dist/objects/challengeCharacters.js +49 -52
- package/dist/objects/challengeCollectibleTypes.js +160 -163
- package/dist/objects/challengeNames.js +49 -52
- package/dist/objects/challengeTrinketType.js +48 -51
- package/dist/objects/characterDamageMultipliers.js +44 -47
- package/dist/objects/characterNames.js +44 -47
- package/dist/objects/characterSpritePNGFileNames.js +44 -47
- package/dist/objects/characterStartingCollectibleTypes.js +49 -52
- package/dist/objects/characterStartingTrinketTypes.js +44 -47
- package/dist/objects/chestNames.js +15 -18
- package/dist/objects/coinNames.js +11 -14
- package/dist/objects/coinSubTypeToValue.js +11 -14
- package/dist/objects/collectibleDescriptions.js +725 -728
- package/dist/objects/collectibleNames.js +725 -728
- package/dist/objects/colors.js +1 -4
- package/dist/objects/directionNames.js +7 -10
- package/dist/objects/directionToDegrees.js +7 -10
- package/dist/objects/directionToMoveAction.js +7 -10
- package/dist/objects/directionToShootAction.js +7 -10
- package/dist/objects/directionToVector.js +9 -12
- package/dist/objects/doorSlotFlagToDoorSlot.js +11 -14
- package/dist/objects/doorSlotToDirection.js +11 -14
- package/dist/objects/doorSlotToDoorSlotFlag.js +11 -14
- package/dist/objects/gridEntityTypeToANM2Name.js +30 -33
- package/dist/objects/heartNames.js +16 -19
- package/dist/objects/isaacAPIClassTypeToBrand.js +8 -11
- package/dist/objects/isaacAPIClassTypeToFunctions.js +37 -40
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +9 -45
- package/dist/objects/kColors.js +1 -4
- package/dist/objects/keyNames.js +8 -11
- package/dist/objects/languageNames.js +9 -12
- package/dist/objects/oppositeDoorSlots.js +11 -14
- package/dist/objects/pillEffectClasses.js +53 -56
- package/dist/objects/pillEffectNames.js +53 -56
- package/dist/objects/pillEffectTypeToPillEffects.js +11 -14
- package/dist/objects/pillEffectTypes.js +53 -56
- package/dist/objects/playerNamePNGFileNames.js +44 -47
- package/dist/objects/playerPortraitPNGFileNames.js +44 -47
- package/dist/objects/roomShapeBounds.js +23 -26
- package/dist/objects/roomShapeCorners.js +128 -131
- package/dist/objects/roomShapeLayoutSizes.js +23 -26
- package/dist/objects/roomShapeToBottomRightPosition.js +17 -20
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +78 -81
- package/dist/objects/roomShapeToDoorSlots.js +48 -51
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +82 -85
- package/dist/objects/roomShapeToGridWidth.js +14 -17
- package/dist/objects/roomShapeToTopLeftPosition.js +18 -21
- package/dist/objects/roomShapeVolumes.js +21 -24
- package/dist/objects/roomTypeNames.js +32 -35
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +32 -35
- package/dist/objects/sackNames.js +6 -9
- package/dist/objects/slotNames.js +21 -24
- package/dist/objects/stageIDNames.js +33 -36
- package/dist/objects/stageToMusic.js +69 -72
- package/dist/objects/stageToStageID.js +90 -93
- package/dist/objects/stageTypeSuffixes.js +8 -11
- package/dist/objects/transformationNames.js +16 -19
- package/dist/objects/trinketDescriptions.js +192 -195
- package/dist/objects/trinketNames.js +192 -195
- package/dist/objects/versusScreenBackgroundColors.js +39 -42
- package/dist/objects/versusScreenDirtSpotColors.js +39 -42
- package/dist/patchErrorFunctions.js +4 -7
- package/dist/serialization.js +6 -9
- package/dist/sets/LRoomShapesSet.js +7 -10
- package/dist/sets/bigRoomShapesSet.js +10 -13
- package/dist/sets/bossSets.js +261 -264
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +14 -17
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +5 -8
- package/dist/sets/charactersWithFreeDevilDealsSet.js +3 -6
- package/dist/sets/charactersWithNoRedHeartsSet.js +11 -14
- package/dist/sets/charactersWithNoSoulHeartsSet.js +8 -11
- package/dist/sets/consoleCommandsSet.js +2 -5
- package/dist/sets/entitiesWithArmorSet.js +44 -47
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +11 -14
- package/dist/sets/itemConfigCardTypesForCards.js +7 -10
- package/dist/sets/lostStyleCharactersSet.js +8 -11
- package/dist/sets/mineShaftRoomSubTypesSet.js +8 -11
- package/dist/sets/narrowRoomShapesSet.js +7 -10
- package/dist/sets/poopGridEntityXMLTypesSet.js +12 -15
- package/dist/sets/redHeartSubTypesSet.js +6 -9
- package/dist/sets/repentanceBossIDsSet.js +26 -29
- package/dist/sets/sinEntityTypesSet.js +10 -13
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +11 -14
- package/dist/shaderCrashFix.js +4 -7
- package/dist/shouldFire.js +28 -58
- package/dist/types/AddSubtract.js +1 -2
- package/dist/types/AllButFirst.js +1 -2
- package/dist/types/AllButLast.js +1 -2
- package/dist/types/AnyClass.js +1 -2
- package/dist/types/AnyEntity.js +1 -2
- package/dist/types/AnyFunction.js +1 -2
- package/dist/types/AnyGridEntity.js +1 -2
- package/dist/types/CompositionTypeSatisfiesEnum.js +1 -2
- package/dist/types/ConversionHeartSubType.js +1 -2
- package/dist/types/Decrement.js +1 -2
- package/dist/types/ERange.js +1 -2
- package/dist/types/EntityID.js +1 -2
- package/dist/types/FunctionTuple.js +1 -2
- package/dist/types/GridEntityID.js +1 -2
- package/dist/types/HasFunction.js +1 -2
- package/dist/types/IRange.js +1 -2
- package/dist/types/Immutable.js +1 -2
- package/dist/types/Increment.js +1 -2
- package/dist/types/LowercaseKeys.js +1 -2
- package/dist/types/NaturalNumbersLessThan.js +1 -2
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +1 -2
- package/dist/types/ObjectValues.js +1 -2
- package/dist/types/PickingUpItem.js +15 -22
- package/dist/types/PickupIndex.js +1 -2
- package/dist/types/PlayerIndex.js +1 -2
- package/dist/types/PossibleStatType.js +1 -2
- package/dist/types/PublicInterface.js +1 -2
- package/dist/types/ReadonlyMap.js +1 -4
- package/dist/types/ReadonlyRecord.js +1 -2
- package/dist/types/ReadonlySet.js +1 -4
- package/dist/types/StartsWithLowercase.js +1 -2
- package/dist/types/StartsWithUppercase.js +1 -2
- package/dist/types/TSTLClass.js +1 -2
- package/dist/types/Tuple.js +1 -2
- package/dist/types/TupleKeys.js +1 -2
- package/dist/types/TupleToIntersection.js +1 -2
- package/dist/types/TupleToUnion.js +1 -2
- package/dist/types/TupleWithLengthBetween.js +1 -2
- package/dist/types/TupleWithMaxLength.js +1 -2
- package/dist/types/UnionToIntersection.js +1 -2
- package/dist/types/UppercaseKeys.js +1 -2
- package/dist/types/WeightedArray.js +1 -2
- package/dist/types/WidenLiteral.js +1 -2
- package/dist/types/Writable.js +1 -2
- package/dist/types/private/CallbackTuple.js +1 -2
- package/dist/types/private/ModUpgradedWithFeatures.js +1 -2
- package/package.json +3 -3
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const playerIndex_1 = require("../../../functions/playerIndex");
|
|
11
|
-
const players_1 = require("../../../functions/players");
|
|
12
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { CollectibleType, FamiliarVariant, ModCallback, PlayerType, SoundEffect, } from "isaac-typescript-definitions";
|
|
2
|
+
import { sfxManager } from "../../../core/cachedClasses";
|
|
3
|
+
import { ISCFeature } from "../../../enums/ISCFeature";
|
|
4
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
5
|
+
import { rebirthItemTrackerRemoveCollectible } from "../../../functions/external";
|
|
6
|
+
import { log, logError } from "../../../functions/log";
|
|
7
|
+
import { getPlayerFromIndex, getPlayerIndex, } from "../../../functions/playerIndex";
|
|
8
|
+
import { isCharacter } from "../../../functions/players";
|
|
9
|
+
import { Feature } from "../../private/Feature";
|
|
13
10
|
const DEBUG = false;
|
|
14
11
|
var CustomReviveState;
|
|
15
12
|
(function (CustomReviveState) {
|
|
@@ -28,7 +25,7 @@ const v = {
|
|
|
28
25
|
dyingPlayerIndex: null,
|
|
29
26
|
},
|
|
30
27
|
};
|
|
31
|
-
class CustomRevive extends
|
|
28
|
+
export class CustomRevive extends Feature {
|
|
32
29
|
preCustomRevive;
|
|
33
30
|
postCustomRevive;
|
|
34
31
|
runInNFrames;
|
|
@@ -39,7 +36,7 @@ class CustomRevive extends Feature_1.Feature {
|
|
|
39
36
|
}
|
|
40
37
|
// The 1-up sound will fire before the item holding animation begins, so we mute it on every
|
|
41
38
|
// render frame.
|
|
42
|
-
|
|
39
|
+
sfxManager.Stop(SoundEffect.ONE_UP);
|
|
43
40
|
};
|
|
44
41
|
// ModCallback.POST_FAMILIAR_INIT (7)
|
|
45
42
|
// FamiliarVariant.ONE_UP (41)
|
|
@@ -73,25 +70,25 @@ class CustomRevive extends Feature_1.Feature {
|
|
|
73
70
|
v = v;
|
|
74
71
|
constructor(preCustomRevive, postCustomRevive, runInNFrames) {
|
|
75
72
|
super();
|
|
76
|
-
this.featuresUsed = [
|
|
73
|
+
this.featuresUsed = [ISCFeature.RUN_IN_N_FRAMES];
|
|
77
74
|
this.callbacksUsed = [
|
|
78
75
|
// 2
|
|
79
|
-
[
|
|
76
|
+
[ModCallback.POST_RENDER, this.postRender],
|
|
80
77
|
// 7
|
|
81
78
|
[
|
|
82
|
-
|
|
79
|
+
ModCallback.POST_FAMILIAR_INIT,
|
|
83
80
|
this.postFamiliarInitOneUp,
|
|
84
|
-
[
|
|
81
|
+
[FamiliarVariant.ONE_UP],
|
|
85
82
|
],
|
|
86
83
|
];
|
|
87
84
|
this.customCallbacksUsed = [
|
|
88
|
-
[
|
|
85
|
+
[ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
|
|
89
86
|
[
|
|
90
|
-
|
|
87
|
+
ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
|
|
91
88
|
this.postPEffectUpdateReordered,
|
|
92
89
|
],
|
|
93
|
-
[
|
|
94
|
-
[
|
|
90
|
+
[ModCallbackCustom.POST_PLAYER_FATAL_DAMAGE, this.postPlayerFatalDamage],
|
|
91
|
+
[ModCallbackCustom.PRE_BERSERK_DEATH, this.preBerserkDeath],
|
|
95
92
|
];
|
|
96
93
|
this.preCustomRevive = preCustomRevive;
|
|
97
94
|
this.postCustomRevive = postCustomRevive;
|
|
@@ -104,12 +101,12 @@ class CustomRevive extends Feature_1.Feature {
|
|
|
104
101
|
if (v.run.dyingPlayerIndex === null) {
|
|
105
102
|
return;
|
|
106
103
|
}
|
|
107
|
-
const playerIndex =
|
|
104
|
+
const playerIndex = getPlayerIndex(player);
|
|
108
105
|
if (playerIndex !== v.run.dyingPlayerIndex) {
|
|
109
106
|
return;
|
|
110
107
|
}
|
|
111
108
|
let playerToCheckHoldingItem = player;
|
|
112
|
-
if (
|
|
109
|
+
if (isCharacter(player, PlayerType.SOUL_B)) {
|
|
113
110
|
const forgottenBody = player.GetOtherTwin();
|
|
114
111
|
if (forgottenBody !== undefined) {
|
|
115
112
|
playerToCheckHoldingItem = forgottenBody;
|
|
@@ -141,30 +138,29 @@ class CustomRevive extends Feature_1.Feature {
|
|
|
141
138
|
}
|
|
142
139
|
v.run.state = CustomReviveState.WAITING_FOR_ROOM_TRANSITION;
|
|
143
140
|
v.run.revivalType = revivalType;
|
|
144
|
-
v.run.dyingPlayerIndex =
|
|
141
|
+
v.run.dyingPlayerIndex = getPlayerIndex(player);
|
|
145
142
|
this.logStateChanged();
|
|
146
|
-
player.AddCollectible(
|
|
147
|
-
|
|
143
|
+
player.AddCollectible(CollectibleType.ONE_UP, 0, false);
|
|
144
|
+
rebirthItemTrackerRemoveCollectible(CollectibleType.ONE_UP);
|
|
148
145
|
// The player should always be dead one frame from now. If they are not, then something has gone
|
|
149
146
|
// wrong, probably with the `isDamageToPlayerFatal` function. Since end-user code is already
|
|
150
147
|
// assuming that a custom revive is occurring, explicitly kill the player.
|
|
151
|
-
const playerIndex =
|
|
148
|
+
const playerIndex = getPlayerIndex(player);
|
|
152
149
|
this.runInNFrames.runNextGameFrame(() => {
|
|
153
|
-
const futurePlayer =
|
|
150
|
+
const futurePlayer = getPlayerFromIndex(playerIndex);
|
|
154
151
|
if (futurePlayer === undefined) {
|
|
155
152
|
return;
|
|
156
153
|
}
|
|
157
154
|
if (futurePlayer.IsDead()) {
|
|
158
155
|
return;
|
|
159
156
|
}
|
|
160
|
-
|
|
157
|
+
logError("The player is still alive after initializing a custom revive. Explicitly killing the player.");
|
|
161
158
|
futurePlayer.Kill();
|
|
162
159
|
});
|
|
163
160
|
}
|
|
164
161
|
logStateChanged() {
|
|
165
162
|
if (DEBUG) {
|
|
166
|
-
|
|
163
|
+
log(`Custom revive state changed: ${CustomReviveState[v.run.state]} (${v.run.state})`);
|
|
167
164
|
}
|
|
168
165
|
}
|
|
169
166
|
}
|
|
170
|
-
exports.CustomRevive = CustomRevive;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const cachedClasses_1 = require("../../../core/cachedClasses");
|
|
6
|
-
const players_1 = require("../../../functions/players");
|
|
7
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { game } from "../../../core/cachedClasses";
|
|
3
|
+
import { getPlayersWithControllerIndex } from "../../../functions/players";
|
|
4
|
+
import { Feature } from "../../private/Feature";
|
|
8
5
|
const v = {
|
|
9
6
|
run: {
|
|
10
7
|
usedEsauJrFrame: null,
|
|
@@ -12,12 +9,12 @@ const v = {
|
|
|
12
9
|
usedEsauJrAtLeastOnce: false,
|
|
13
10
|
},
|
|
14
11
|
};
|
|
15
|
-
class EsauJrDetection extends
|
|
12
|
+
export class EsauJrDetection extends Feature {
|
|
16
13
|
postEsauJr;
|
|
17
14
|
postFirstEsauJr;
|
|
18
15
|
// ModCallback.POST_UPDATE (1)
|
|
19
16
|
postUpdate = () => {
|
|
20
|
-
const gameFrameCount =
|
|
17
|
+
const gameFrameCount = game.GetFrameCount();
|
|
21
18
|
// Check to see if it is the frame after the player has used Esau Jr.
|
|
22
19
|
if (v.run.usedEsauJrFrame === null
|
|
23
20
|
|| gameFrameCount < v.run.usedEsauJrFrame + 1) {
|
|
@@ -29,7 +26,7 @@ class EsauJrDetection extends Feature_1.Feature {
|
|
|
29
26
|
if (v.run.usedEsauJrControllerIndex === null) {
|
|
30
27
|
return;
|
|
31
28
|
}
|
|
32
|
-
const players =
|
|
29
|
+
const players = getPlayersWithControllerIndex(v.run.usedEsauJrControllerIndex);
|
|
33
30
|
v.run.usedEsauJrControllerIndex = null;
|
|
34
31
|
const player = players[0];
|
|
35
32
|
if (player === undefined) {
|
|
@@ -44,7 +41,7 @@ class EsauJrDetection extends Feature_1.Feature {
|
|
|
44
41
|
// ModCallback.POST_USE_ITEM (3)
|
|
45
42
|
// CollectibleType.ESAU_JR (703)
|
|
46
43
|
postUseItemEsauJr = (_collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData) => {
|
|
47
|
-
const gameFrameCount =
|
|
44
|
+
const gameFrameCount = game.GetFrameCount();
|
|
48
45
|
// The player only changes to Esau Jr. on the frame after the item is used.
|
|
49
46
|
v.run.usedEsauJrFrame = gameFrameCount + 1;
|
|
50
47
|
v.run.usedEsauJrControllerIndex = player.ControllerIndex;
|
|
@@ -55,16 +52,15 @@ class EsauJrDetection extends Feature_1.Feature {
|
|
|
55
52
|
super();
|
|
56
53
|
this.callbacksUsed = [
|
|
57
54
|
// 1
|
|
58
|
-
[
|
|
55
|
+
[ModCallback.POST_UPDATE, this.postUpdate],
|
|
59
56
|
// 3
|
|
60
57
|
[
|
|
61
|
-
|
|
58
|
+
ModCallback.POST_USE_ITEM,
|
|
62
59
|
this.postUseItemEsauJr,
|
|
63
|
-
[
|
|
60
|
+
[CollectibleType.ESAU_JR],
|
|
64
61
|
],
|
|
65
62
|
];
|
|
66
63
|
this.postEsauJr = postEsauJr;
|
|
67
64
|
this.postFirstEsauJr = postFirstEsauJr;
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
exports.EsauJrDetection = EsauJrDetection;
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
-
const players_1 = require("../../../functions/players");
|
|
6
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { CollectibleType, ModCallback, PlayerType, } from "isaac-typescript-definitions";
|
|
2
|
+
import { getPlayersOfType, isTaintedLazarus } from "../../../functions/players";
|
|
3
|
+
import { Feature } from "../../private/Feature";
|
|
7
4
|
const v = {
|
|
8
5
|
run: {
|
|
9
6
|
/** We don't consider the case of a multiplayer game with more than one Tainted Lazarus. */
|
|
10
7
|
usedFlipAtLeastOnce: false,
|
|
11
8
|
},
|
|
12
9
|
};
|
|
13
|
-
class FlipDetection extends
|
|
10
|
+
export class FlipDetection extends Feature {
|
|
14
11
|
postFlip;
|
|
15
12
|
postFirstFlip;
|
|
16
13
|
// ModCallback.POST_USE_ITEM (3)
|
|
17
14
|
// CollectibleType.FLIP (711)
|
|
18
15
|
postUseItemFlip = (_collectibleType, _rng, player, _useFlags, _activeSlot, _customVarData) => {
|
|
19
|
-
if (!
|
|
16
|
+
if (!isTaintedLazarus(player)) {
|
|
20
17
|
return undefined;
|
|
21
18
|
}
|
|
22
19
|
// The player passed as part of the callback will be the old Lazarus that used the Flip item. We
|
|
@@ -37,25 +34,24 @@ class FlipDetection extends Feature_1.Feature {
|
|
|
37
34
|
super();
|
|
38
35
|
this.callbacksUsed = [
|
|
39
36
|
// 3
|
|
40
|
-
[
|
|
37
|
+
[ModCallback.POST_USE_ITEM, this.postUseItemFlip, [CollectibleType.FLIP]],
|
|
41
38
|
];
|
|
42
39
|
this.postFlip = postFlip;
|
|
43
40
|
this.postFirstFlip = postFirstFlip;
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
|
-
exports.FlipDetection = FlipDetection;
|
|
47
43
|
function getNewLazarus(oldLazarus) {
|
|
48
44
|
const oldCharacter = oldLazarus.GetPlayerType();
|
|
49
45
|
let newCharacter;
|
|
50
|
-
if (oldCharacter ===
|
|
51
|
-
newCharacter =
|
|
46
|
+
if (oldCharacter === PlayerType.LAZARUS_B) {
|
|
47
|
+
newCharacter = PlayerType.LAZARUS_2_B;
|
|
52
48
|
}
|
|
53
|
-
else if (oldCharacter ===
|
|
54
|
-
newCharacter =
|
|
49
|
+
else if (oldCharacter === PlayerType.LAZARUS_2_B) {
|
|
50
|
+
newCharacter = PlayerType.LAZARUS_B;
|
|
55
51
|
}
|
|
56
52
|
else {
|
|
57
53
|
return undefined;
|
|
58
54
|
}
|
|
59
|
-
const playersOfType =
|
|
55
|
+
const playersOfType = getPlayersOfType(newCharacter);
|
|
60
56
|
return playersOfType.find((player) => player.FrameCount === oldLazarus.FrameCount);
|
|
61
57
|
}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const frames_1 = require("../../../functions/frames");
|
|
14
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
+
import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
|
|
8
|
+
import { game } from "../../../core/cachedClasses";
|
|
9
|
+
import { Exported } from "../../../decorators";
|
|
10
|
+
import { onGameFrame, onRenderFrame } from "../../../functions/frames";
|
|
11
|
+
import { Feature } from "../../private/Feature";
|
|
15
12
|
/**
|
|
16
13
|
* By default, callbacks fire in the following order:
|
|
17
14
|
* - `POST_NEW_ROOM` --> `POST_NEW_LEVEL` --> `POST_GAME_STARTED`
|
|
@@ -27,7 +24,7 @@ const Feature_1 = require("../../private/Feature");
|
|
|
27
24
|
* Additionally, there are some helper functions listed below that can deal with some edge cases
|
|
28
25
|
* that you may run into with these callbacks.
|
|
29
26
|
*/
|
|
30
|
-
class GameReorderedCallbacks extends
|
|
27
|
+
export class GameReorderedCallbacks extends Feature {
|
|
31
28
|
/** Used to detect a player resuming a saved run. */
|
|
32
29
|
renderFrameRunStarted = null;
|
|
33
30
|
currentStage = null;
|
|
@@ -53,10 +50,10 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
53
50
|
};
|
|
54
51
|
// ModCallback.POST_GAME_STARTED (15)
|
|
55
52
|
postGameStarted = (isContinued) => {
|
|
56
|
-
const level =
|
|
53
|
+
const level = game.GetLevel();
|
|
57
54
|
const stage = level.GetStage();
|
|
58
55
|
const stageType = level.GetStageType();
|
|
59
|
-
const room =
|
|
56
|
+
const room = game.GetRoom();
|
|
60
57
|
const roomType = room.GetType();
|
|
61
58
|
this.recordCurrentStage();
|
|
62
59
|
this.postGameStartedReordered.fire(isContinued);
|
|
@@ -74,15 +71,15 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
74
71
|
};
|
|
75
72
|
// ModCallback.POST_NEW_LEVEL (18)
|
|
76
73
|
postNewLevel = () => {
|
|
77
|
-
if (
|
|
74
|
+
if (onGameFrame(0) && !this.forceNewLevel) {
|
|
78
75
|
// Wait for the `POST_GAME_STARTED` callback to fire.
|
|
79
76
|
return;
|
|
80
77
|
}
|
|
81
78
|
this.forceNewLevel = false;
|
|
82
|
-
const level =
|
|
79
|
+
const level = game.GetLevel();
|
|
83
80
|
const stage = level.GetStage();
|
|
84
81
|
const stageType = level.GetStageType();
|
|
85
|
-
const room =
|
|
82
|
+
const room = game.GetRoom();
|
|
86
83
|
const roomType = room.GetType();
|
|
87
84
|
this.recordCurrentStage();
|
|
88
85
|
this.postNewLevelReordered.fire(stage, stageType);
|
|
@@ -90,10 +87,10 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
90
87
|
};
|
|
91
88
|
// ModCallback.POST_NEW_ROOM (19)
|
|
92
89
|
postNewRoom = () => {
|
|
93
|
-
const level =
|
|
90
|
+
const level = game.GetLevel();
|
|
94
91
|
const stage = level.GetStage();
|
|
95
92
|
const stageType = level.GetStageType();
|
|
96
|
-
const room =
|
|
93
|
+
const room = game.GetRoom();
|
|
97
94
|
const roomType = room.GetType();
|
|
98
95
|
if (this.usedGlowingHourGlass) {
|
|
99
96
|
this.usedGlowingHourGlass = false;
|
|
@@ -107,8 +104,8 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
107
104
|
return;
|
|
108
105
|
}
|
|
109
106
|
}
|
|
110
|
-
if ((
|
|
111
|
-
||
|
|
107
|
+
if ((onGameFrame(0)
|
|
108
|
+
|| onRenderFrame(this.renderFrameRunStarted)
|
|
112
109
|
|| this.currentStage !== stage
|
|
113
110
|
|| this.currentStageType !== stageType)
|
|
114
111
|
&& !this.forceNewRoom) {
|
|
@@ -123,23 +120,23 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
123
120
|
this.callbacksUsed = [
|
|
124
121
|
// 3
|
|
125
122
|
[
|
|
126
|
-
|
|
123
|
+
ModCallback.POST_USE_ITEM,
|
|
127
124
|
this.postUseItemGlowingHourGlass,
|
|
128
|
-
[
|
|
125
|
+
[CollectibleType.GLOWING_HOUR_GLASS],
|
|
129
126
|
],
|
|
130
127
|
// 9
|
|
131
|
-
[
|
|
128
|
+
[ModCallback.POST_PLAYER_INIT, this.postPlayerInit],
|
|
132
129
|
// 15
|
|
133
130
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
134
|
-
[
|
|
131
|
+
[ModCallback.POST_GAME_STARTED, this.postGameStarted],
|
|
135
132
|
// 17
|
|
136
|
-
[
|
|
133
|
+
[ModCallback.PRE_GAME_EXIT, this.preGameExit],
|
|
137
134
|
// 18
|
|
138
135
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
139
|
-
[
|
|
136
|
+
[ModCallback.POST_NEW_LEVEL, this.postNewLevel],
|
|
140
137
|
// 19
|
|
141
138
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
142
|
-
[
|
|
139
|
+
[ModCallback.POST_NEW_ROOM, this.postNewRoom],
|
|
143
140
|
];
|
|
144
141
|
this.postGameStartedReordered = postGameStartedReordered;
|
|
145
142
|
this.postNewLevelReordered = postNewLevelReordered;
|
|
@@ -147,7 +144,7 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
147
144
|
this.postGameStartedReorderedLast = postGameStartedReorderedLast;
|
|
148
145
|
}
|
|
149
146
|
recordCurrentStage() {
|
|
150
|
-
const level =
|
|
147
|
+
const level = game.GetLevel();
|
|
151
148
|
const stage = level.GetStage();
|
|
152
149
|
const stageType = level.GetStageType();
|
|
153
150
|
this.currentStage = stage;
|
|
@@ -206,13 +203,12 @@ class GameReorderedCallbacks extends Feature_1.Feature {
|
|
|
206
203
|
this.currentStageType = stageType;
|
|
207
204
|
}
|
|
208
205
|
}
|
|
209
|
-
exports.GameReorderedCallbacks = GameReorderedCallbacks;
|
|
210
206
|
__decorate([
|
|
211
|
-
|
|
207
|
+
Exported
|
|
212
208
|
], GameReorderedCallbacks.prototype, "forceNewLevelCallback", null);
|
|
213
209
|
__decorate([
|
|
214
|
-
|
|
210
|
+
Exported
|
|
215
211
|
], GameReorderedCallbacks.prototype, "forceNewRoomCallback", null);
|
|
216
212
|
__decorate([
|
|
217
|
-
|
|
213
|
+
Exported
|
|
218
214
|
], GameReorderedCallbacks.prototype, "reorderedCallbacksSetStage", null);
|
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const gridEntities_1 = require("../../../functions/gridEntities");
|
|
6
|
-
const DefaultMap_1 = require("../../DefaultMap");
|
|
7
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { GridCollisionClass, ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { getCollidingEntitiesWithGridEntity, getGridEntities, } from "../../../functions/gridEntities";
|
|
3
|
+
import { DefaultMap } from "../../DefaultMap";
|
|
4
|
+
import { Feature } from "../../private/Feature";
|
|
8
5
|
const v = {
|
|
9
6
|
room: {
|
|
10
7
|
/** Indexed by grid entity pointer hash. */
|
|
11
|
-
collidingEntitiesMap: new
|
|
8
|
+
collidingEntitiesMap: new DefaultMap(() => new Set()),
|
|
12
9
|
},
|
|
13
10
|
};
|
|
14
|
-
class GridEntityCollisionDetection extends
|
|
11
|
+
export class GridEntityCollisionDetection extends Feature {
|
|
15
12
|
postGridEntityCollision;
|
|
16
13
|
postGridEntityCustomCollision;
|
|
17
14
|
customGridEntities;
|
|
18
15
|
// ModCallback.POST_UPDATE (1)
|
|
19
16
|
postUpdate = () => {
|
|
20
|
-
const gridEntities =
|
|
21
|
-
const gridEntitiesWithCollision = gridEntities.filter((gridEntity) => gridEntity.CollisionClass !==
|
|
17
|
+
const gridEntities = getGridEntities();
|
|
18
|
+
const gridEntitiesWithCollision = gridEntities.filter((gridEntity) => gridEntity.CollisionClass !== GridCollisionClass.NONE);
|
|
22
19
|
for (const gridEntity of gridEntitiesWithCollision) {
|
|
23
20
|
const gridEntityPtrHash = GetPtrHash(gridEntity);
|
|
24
21
|
const oldCollidingEntities = v.room.collidingEntitiesMap.getAndSetDefault(gridEntityPtrHash);
|
|
25
22
|
// Check for new colliding entities.
|
|
26
|
-
const collidingEntities =
|
|
23
|
+
const collidingEntities = getCollidingEntitiesWithGridEntity(gridEntity);
|
|
27
24
|
for (const entity of collidingEntities) {
|
|
28
25
|
const entityPtrHash = GetPtrHash(entity);
|
|
29
26
|
if (!oldCollidingEntities.has(entityPtrHash)) {
|
|
@@ -52,11 +49,10 @@ class GridEntityCollisionDetection extends Feature_1.Feature {
|
|
|
52
49
|
super();
|
|
53
50
|
this.callbacksUsed = [
|
|
54
51
|
// 1
|
|
55
|
-
[
|
|
52
|
+
[ModCallback.POST_UPDATE, this.postUpdate],
|
|
56
53
|
];
|
|
57
54
|
this.postGridEntityCollision = postGridEntityCollision;
|
|
58
55
|
this.postGridEntityCustomCollision = postGridEntityCustomCollision;
|
|
59
56
|
this.customGridEntities = customGridEntities;
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
|
-
exports.GridEntityCollisionDetection = GridEntityCollisionDetection;
|
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const gridEntities_1 = require("../../../functions/gridEntities");
|
|
6
|
-
const Feature_1 = require("../../private/Feature");
|
|
7
|
-
class GridEntityRenderDetection extends Feature_1.Feature {
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { getGridEntities } from "../../../functions/gridEntities";
|
|
3
|
+
import { Feature } from "../../private/Feature";
|
|
4
|
+
export class GridEntityRenderDetection extends Feature {
|
|
8
5
|
postGridEntityRender;
|
|
9
6
|
postGridEntityCustomRender;
|
|
10
7
|
customGridEntities;
|
|
11
8
|
// ModCallback.POST_RENDER (2)
|
|
12
9
|
postRender = () => {
|
|
13
|
-
for (const gridEntity of
|
|
10
|
+
for (const gridEntity of getGridEntities()) {
|
|
14
11
|
const gridIndex = gridEntity.GetGridIndex();
|
|
15
12
|
const gridEntityTypeCustom = this.customGridEntities.getCustomGridEntityType(gridIndex);
|
|
16
13
|
if (gridEntityTypeCustom === undefined) {
|
|
@@ -25,11 +22,10 @@ class GridEntityRenderDetection extends Feature_1.Feature {
|
|
|
25
22
|
super();
|
|
26
23
|
this.callbacksUsed = [
|
|
27
24
|
// 2
|
|
28
|
-
[
|
|
25
|
+
[ModCallback.POST_RENDER, this.postRender],
|
|
29
26
|
];
|
|
30
27
|
this.postGridEntityRender = postGridEntityRender;
|
|
31
28
|
this.postGridEntityCustomRender = postGridEntityCustomRender;
|
|
32
29
|
this.customGridEntities = customGridEntities;
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
exports.GridEntityRenderDetection = GridEntityRenderDetection;
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const ModCallbackCustom_1 = require("../../../enums/ModCallbackCustom");
|
|
7
|
-
const gridEntities_1 = require("../../../functions/gridEntities");
|
|
8
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { ModCallback } from "isaac-typescript-definitions";
|
|
2
|
+
import { ISCFeature } from "../../../enums/ISCFeature";
|
|
3
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
4
|
+
import { getGridEntitiesMap, isGridEntityBroken, } from "../../../functions/gridEntities";
|
|
5
|
+
import { Feature } from "../../private/Feature";
|
|
9
6
|
const v = {
|
|
10
7
|
room: {
|
|
11
8
|
/** Indexed by grid index. */
|
|
12
9
|
initializedGridEntities: new Map(),
|
|
13
10
|
},
|
|
14
11
|
};
|
|
15
|
-
class GridEntityUpdateDetection extends
|
|
12
|
+
export class GridEntityUpdateDetection extends Feature {
|
|
16
13
|
postGridEntityInit;
|
|
17
14
|
postGridEntityCustomInit;
|
|
18
15
|
postGridEntityUpdate;
|
|
@@ -26,7 +23,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
|
|
|
26
23
|
customGridEntities;
|
|
27
24
|
// ModCallback.POST_UPDATE (1)
|
|
28
25
|
postUpdate = () => {
|
|
29
|
-
const gridEntitiesMap =
|
|
26
|
+
const gridEntitiesMap = getGridEntitiesMap();
|
|
30
27
|
// We check for removed grid entities first so that grid entities that change type will count as
|
|
31
28
|
// being removed and fire the PostGridEntityRemoved callback.
|
|
32
29
|
this.checkGridEntitiesRemoved(gridEntitiesMap);
|
|
@@ -44,7 +41,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
|
|
|
44
41
|
};
|
|
45
42
|
// ModCallbackCustom.POST_NEW_ROOM_REORDERED
|
|
46
43
|
postNewRoomReordered = () => {
|
|
47
|
-
const gridEntitiesMap =
|
|
44
|
+
const gridEntitiesMap = getGridEntitiesMap();
|
|
48
45
|
for (const [gridIndex, gridEntity] of gridEntitiesMap) {
|
|
49
46
|
this.checkNewGridEntity(gridIndex, gridEntity);
|
|
50
47
|
}
|
|
@@ -52,13 +49,13 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
|
|
|
52
49
|
v = v;
|
|
53
50
|
constructor(postGridEntityInit, postGridEntityCustomInit, postGridEntityUpdate, postGridEntityCustomUpdate, postGridEntityRemove, postGridEntityCustomRemove, postGridEntityStateChanged, postGridEntityCustomStateChanged, postGridEntityBroken, postGridEntityCustomBroken, customGridEntities) {
|
|
54
51
|
super();
|
|
55
|
-
this.featuresUsed = [
|
|
52
|
+
this.featuresUsed = [ISCFeature.RUN_IN_N_FRAMES];
|
|
56
53
|
this.callbacksUsed = [
|
|
57
54
|
// 1
|
|
58
|
-
[
|
|
55
|
+
[ModCallback.POST_UPDATE, this.postUpdate],
|
|
59
56
|
];
|
|
60
57
|
this.customCallbacksUsed = [
|
|
61
|
-
[
|
|
58
|
+
[ModCallbackCustom.POST_NEW_ROOM_REORDERED, this.postNewRoomReordered],
|
|
62
59
|
];
|
|
63
60
|
this.postGridEntityInit = postGridEntityInit;
|
|
64
61
|
this.postGridEntityCustomInit = postGridEntityCustomInit;
|
|
@@ -107,7 +104,7 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
|
|
|
107
104
|
else {
|
|
108
105
|
this.postGridEntityCustomStateChanged.fire(gridEntity, gridEntityTypeCustom, oldState, newState);
|
|
109
106
|
}
|
|
110
|
-
if (
|
|
107
|
+
if (isGridEntityBroken(gridEntity)) {
|
|
111
108
|
if (gridEntityTypeCustom === undefined) {
|
|
112
109
|
this.postGridEntityBroken.fire(gridEntity);
|
|
113
110
|
}
|
|
@@ -144,4 +141,3 @@ class GridEntityUpdateDetection extends Feature_1.Feature {
|
|
|
144
141
|
v.room.initializedGridEntities.set(gridIndex, newTuple);
|
|
145
142
|
}
|
|
146
143
|
}
|
|
147
|
-
exports.GridEntityUpdateDetection = GridEntityUpdateDetection;
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const PickingUpItem_1 = require("../../../types/PickingUpItem");
|
|
10
|
-
const DefaultMap_1 = require("../../DefaultMap");
|
|
11
|
-
const Feature_1 = require("../../private/Feature");
|
|
1
|
+
import { ItemType } from "isaac-typescript-definitions";
|
|
2
|
+
import { ModCallbackCustom } from "../../../enums/ModCallbackCustom";
|
|
3
|
+
import { defaultMapGetPlayer } from "../../../functions/playerDataStructures";
|
|
4
|
+
import { dequeueItem } from "../../../functions/players";
|
|
5
|
+
import { asNumber } from "../../../functions/types";
|
|
6
|
+
import { newPickingUpItem, resetPickingUpItem, } from "../../../types/PickingUpItem";
|
|
7
|
+
import { DefaultMap } from "../../DefaultMap";
|
|
8
|
+
import { Feature } from "../../private/Feature";
|
|
12
9
|
const v = {
|
|
13
10
|
run: {
|
|
14
|
-
playersPickingUpItemMap: new
|
|
11
|
+
playersPickingUpItemMap: new DefaultMap(() => newPickingUpItem()),
|
|
15
12
|
},
|
|
16
13
|
};
|
|
17
|
-
class ItemPickupDetection extends
|
|
14
|
+
export class ItemPickupDetection extends Feature {
|
|
18
15
|
postItemPickup;
|
|
19
16
|
preItemPickup;
|
|
20
17
|
// ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED
|
|
21
18
|
postPEffectUpdateReordered = (player) => {
|
|
22
|
-
const pickingUpItem =
|
|
19
|
+
const pickingUpItem = defaultMapGetPlayer(v.run.playersPickingUpItemMap, player);
|
|
23
20
|
if (player.IsItemQueueEmpty()) {
|
|
24
21
|
this.queueEmpty(player, pickingUpItem);
|
|
25
22
|
// If a player enters a room with a trinket next to the entrance, the player will pick up the
|
|
@@ -36,7 +33,7 @@ class ItemPickupDetection extends Feature_1.Feature {
|
|
|
36
33
|
super();
|
|
37
34
|
this.customCallbacksUsed = [
|
|
38
35
|
[
|
|
39
|
-
|
|
36
|
+
ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
|
|
40
37
|
this.postPEffectUpdateReordered,
|
|
41
38
|
],
|
|
42
39
|
];
|
|
@@ -44,16 +41,16 @@ class ItemPickupDetection extends Feature_1.Feature {
|
|
|
44
41
|
this.preItemPickup = preItemPickup;
|
|
45
42
|
}
|
|
46
43
|
queueEmpty(player, pickingUpItem) {
|
|
47
|
-
if (pickingUpItem.itemType ===
|
|
48
|
-
||
|
|
44
|
+
if (pickingUpItem.itemType === ItemType.NULL
|
|
45
|
+
|| asNumber(pickingUpItem.subType) === 0) {
|
|
49
46
|
return;
|
|
50
47
|
}
|
|
51
48
|
this.postItemPickup.fire(player, pickingUpItem);
|
|
52
|
-
|
|
49
|
+
resetPickingUpItem(pickingUpItem);
|
|
53
50
|
}
|
|
54
51
|
queueNotEmpty(player, pickingUpItem) {
|
|
55
52
|
const queuedItem = player.QueuedItem.Item;
|
|
56
|
-
if (queuedItem === undefined || queuedItem.Type ===
|
|
53
|
+
if (queuedItem === undefined || queuedItem.Type === ItemType.NULL) {
|
|
57
54
|
// This should never happen, since the `EntityPlayer.IsItemQueueEmpty` method returned false.
|
|
58
55
|
return;
|
|
59
56
|
}
|
|
@@ -64,9 +61,8 @@ class ItemPickupDetection extends Feature_1.Feature {
|
|
|
64
61
|
pickingUpItem.subType = queuedItem.ID;
|
|
65
62
|
const shouldBeGranted = this.preItemPickup.fire(player, pickingUpItem);
|
|
66
63
|
if (shouldBeGranted === false) {
|
|
67
|
-
|
|
64
|
+
dequeueItem(player);
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
|
-
exports.ItemPickupDetection = ItemPickupDetection;
|