isaacscript-common 84.0.1 → 84.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/arrays/cachedEnumValues.js +33 -0
- package/dist/callbackClasses.js +289 -0
- package/dist/callbacks.js +181 -0
- package/dist/classes/DefaultMap.js +171 -0
- package/dist/classes/ModFeature.js +244 -0
- package/dist/classes/ModUpgraded.js +324 -0
- package/dist/classes/callbacks/EntityTakeDmgFilter.js +19 -0
- package/dist/classes/callbacks/EntityTakeDmgPlayer.js +29 -0
- package/dist/classes/callbacks/InputActionFilter.js +24 -0
- package/dist/classes/callbacks/InputActionPlayer.js +37 -0
- package/dist/classes/callbacks/PostAmbushFinished.js +40 -0
- package/dist/classes/callbacks/PostAmbushStarted.js +40 -0
- package/dist/classes/callbacks/PostBombExploded.js +24 -0
- package/dist/classes/callbacks/PostBombInitFilter.js +21 -0
- package/dist/classes/callbacks/PostBombInitLate.js +31 -0
- package/dist/classes/callbacks/PostBombRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostBombUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostBoneSwing.js +53 -0
- package/dist/classes/callbacks/PostCollectibleEmpty.js +50 -0
- package/dist/classes/callbacks/PostCursedTeleport.js +119 -0
- package/dist/classes/callbacks/PostCustomRevive.js +17 -0
- package/dist/classes/callbacks/PostDiceRoomActivated.js +50 -0
- package/dist/classes/callbacks/PostDoorRender.js +24 -0
- package/dist/classes/callbacks/PostDoorUpdate.js +24 -0
- package/dist/classes/callbacks/PostEffectInitFilter.js +21 -0
- package/dist/classes/callbacks/PostEffectInitLate.js +31 -0
- package/dist/classes/callbacks/PostEffectRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostEffectStateChanged.js +34 -0
- package/dist/classes/callbacks/PostEffectUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostEntityKillFilter.js +21 -0
- package/dist/classes/callbacks/PostEsauJr.js +12 -0
- package/dist/classes/callbacks/PostFamiliarInitFilter.js +21 -0
- package/dist/classes/callbacks/PostFamiliarInitLate.js +31 -0
- package/dist/classes/callbacks/PostFamiliarRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostFamiliarStateChanged.js +34 -0
- package/dist/classes/callbacks/PostFamiliarUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostFirstEsauJr.js +12 -0
- package/dist/classes/callbacks/PostFirstFlip.js +12 -0
- package/dist/classes/callbacks/PostFlip.js +12 -0
- package/dist/classes/callbacks/PostGameEndFilter.js +21 -0
- package/dist/classes/callbacks/PostGameStartedReordered.js +14 -0
- package/dist/classes/callbacks/PostGameStartedReorderedLast.js +14 -0
- package/dist/classes/callbacks/PostGreedModeWave.js +35 -0
- package/dist/classes/callbacks/PostGridEntityBroken.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCollision.js +28 -0
- package/dist/classes/callbacks/PostGridEntityCustomBroken.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomCollision.js +24 -0
- package/dist/classes/callbacks/PostGridEntityCustomInit.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomRemove.js +18 -0
- package/dist/classes/callbacks/PostGridEntityCustomRender.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomStateChanged.js +14 -0
- package/dist/classes/callbacks/PostGridEntityCustomUpdate.js +14 -0
- package/dist/classes/callbacks/PostGridEntityInit.js +14 -0
- package/dist/classes/callbacks/PostGridEntityRemove.js +19 -0
- package/dist/classes/callbacks/PostGridEntityRender.js +14 -0
- package/dist/classes/callbacks/PostGridEntityStateChanged.js +14 -0
- package/dist/classes/callbacks/PostGridEntityUpdate.js +14 -0
- package/dist/classes/callbacks/PostHolyMantleRemoved.js +43 -0
- package/dist/classes/callbacks/PostItemDischarge.js +122 -0
- package/dist/classes/callbacks/PostItemPickup.js +14 -0
- package/dist/classes/callbacks/PostKeyboardChanged.js +46 -0
- package/dist/classes/callbacks/PostKnifeInitFilter.js +21 -0
- package/dist/classes/callbacks/PostKnifeInitLate.js +31 -0
- package/dist/classes/callbacks/PostKnifeRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostKnifeUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserInitFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserInitLate.js +31 -0
- package/dist/classes/callbacks/PostLaserRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostLaserUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCDeathFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCInitFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCInitLate.js +31 -0
- package/dist/classes/callbacks/PostNPCRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostNPCStateChanged.js +34 -0
- package/dist/classes/callbacks/PostNPCUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostNewLevelReordered.js +14 -0
- package/dist/classes/callbacks/PostNewRoomEarly.js +74 -0
- package/dist/classes/callbacks/PostNewRoomReordered.js +14 -0
- package/dist/classes/callbacks/PostPEffectUpdateReordered.js +14 -0
- package/dist/classes/callbacks/PostPickupChanged.js +14 -0
- package/dist/classes/callbacks/PostPickupCollect.js +38 -0
- package/dist/classes/callbacks/PostPickupInitFilter.js +21 -0
- package/dist/classes/callbacks/PostPickupInitFirst.js +33 -0
- package/dist/classes/callbacks/PostPickupInitLate.js +31 -0
- package/dist/classes/callbacks/PostPickupRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostPickupSelectionFilter.js +29 -0
- package/dist/classes/callbacks/PostPickupStateChanged.js +34 -0
- package/dist/classes/callbacks/PostPickupUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostPitRender.js +24 -0
- package/dist/classes/callbacks/PostPitUpdate.js +24 -0
- package/dist/classes/callbacks/PostPlayerChangeHealth.js +47 -0
- package/dist/classes/callbacks/PostPlayerChangeStat.js +79 -0
- package/dist/classes/callbacks/PostPlayerChangeType.js +36 -0
- package/dist/classes/callbacks/PostPlayerCollectibleAdded.js +14 -0
- package/dist/classes/callbacks/PostPlayerCollectibleRemoved.js +14 -0
- package/dist/classes/callbacks/PostPlayerFatalDamage.js +83 -0
- package/dist/classes/callbacks/PostPlayerInitFirst.js +41 -0
- package/dist/classes/callbacks/PostPlayerInitLate.js +33 -0
- package/dist/classes/callbacks/PostPlayerRenderReordered.js +14 -0
- package/dist/classes/callbacks/PostPlayerUpdateReordered.js +14 -0
- package/dist/classes/callbacks/PostPoopRender.js +24 -0
- package/dist/classes/callbacks/PostPoopUpdate.js +24 -0
- package/dist/classes/callbacks/PostPressurePlateRender.js +24 -0
- package/dist/classes/callbacks/PostPressurePlateUpdate.js +24 -0
- package/dist/classes/callbacks/PostProjectileInitFilter.js +21 -0
- package/dist/classes/callbacks/PostProjectileInitLate.js +31 -0
- package/dist/classes/callbacks/PostProjectileKill.js +52 -0
- package/dist/classes/callbacks/PostProjectileRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostProjectileUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostPurchase.js +90 -0
- package/dist/classes/callbacks/PostRockRender.js +24 -0
- package/dist/classes/callbacks/PostRockUpdate.js +24 -0
- package/dist/classes/callbacks/PostRoomClearChanged.js +46 -0
- package/dist/classes/callbacks/PostSacrifice.js +36 -0
- package/dist/classes/callbacks/PostSlotAnimationChanged.js +14 -0
- package/dist/classes/callbacks/PostSlotCollision.js +25 -0
- package/dist/classes/callbacks/PostSlotDestroyed.js +14 -0
- package/dist/classes/callbacks/PostSlotInit.js +14 -0
- package/dist/classes/callbacks/PostSlotRender.js +14 -0
- package/dist/classes/callbacks/PostSlotUpdate.js +14 -0
- package/dist/classes/callbacks/PostSpikesRender.js +24 -0
- package/dist/classes/callbacks/PostSpikesUpdate.js +24 -0
- package/dist/classes/callbacks/PostTNTRender.js +24 -0
- package/dist/classes/callbacks/PostTNTUpdate.js +24 -0
- package/dist/classes/callbacks/PostTearInitFilter.js +21 -0
- package/dist/classes/callbacks/PostTearInitLate.js +31 -0
- package/dist/classes/callbacks/PostTearInitVeryLate.js +35 -0
- package/dist/classes/callbacks/PostTearKill.js +52 -0
- package/dist/classes/callbacks/PostTearRenderFilter.js +21 -0
- package/dist/classes/callbacks/PostTearUpdateFilter.js +21 -0
- package/dist/classes/callbacks/PostTransformation.js +47 -0
- package/dist/classes/callbacks/PostTrinketBreak.js +70 -0
- package/dist/classes/callbacks/PostUsePillFilter.js +76 -0
- package/dist/classes/callbacks/PreBerserkDeath.js +41 -0
- package/dist/classes/callbacks/PreBombCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreCustomRevive.js +14 -0
- package/dist/classes/callbacks/PreEntitySpawnFilter.js +24 -0
- package/dist/classes/callbacks/PreFamiliarCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreGetPedestal.js +46 -0
- package/dist/classes/callbacks/PreItemPickup.js +14 -0
- package/dist/classes/callbacks/PreKnifeCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreNPCCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreNPCUpdateFilter.js +19 -0
- package/dist/classes/callbacks/PreNewLevel.js +51 -0
- package/dist/classes/callbacks/PreProjectileCollisionFilter.js +19 -0
- package/dist/classes/callbacks/PreRoomEntitySpawnFilter.js +26 -0
- package/dist/classes/callbacks/PreTearCollisionFilter.js +19 -0
- package/dist/classes/features/callbackLogic/CustomGridEntities.js +359 -0
- package/dist/classes/features/callbackLogic/CustomRevive.js +170 -0
- package/dist/classes/features/callbackLogic/EsauJrDetection.js +70 -0
- package/dist/classes/features/callbackLogic/FlipDetection.js +61 -0
- package/dist/classes/features/callbackLogic/GameReorderedCallbacks.js +220 -0
- package/dist/classes/features/callbackLogic/GridEntityCollisionDetection.js +62 -0
- package/dist/classes/features/callbackLogic/GridEntityRenderDetection.js +35 -0
- package/dist/classes/features/callbackLogic/GridEntityUpdateDetection.js +147 -0
- package/dist/classes/features/callbackLogic/ItemPickupDetection.js +68 -0
- package/dist/classes/features/callbackLogic/PickupChangeDetection.js +43 -0
- package/dist/classes/features/callbackLogic/PlayerCollectibleDetection.js +193 -0
- package/dist/classes/features/callbackLogic/PlayerReorderedCallbacks.js +109 -0
- package/dist/classes/features/callbackLogic/SlotDestroyedDetection.js +95 -0
- package/dist/classes/features/callbackLogic/SlotRenderDetection.js +48 -0
- package/dist/classes/features/callbackLogic/SlotUpdateDetection.js +52 -0
- package/dist/classes/features/other/CharacterHealthConversion.js +112 -0
- package/dist/classes/features/other/CharacterStats.js +68 -0
- package/dist/classes/features/other/CollectibleItemPoolType.js +75 -0
- package/dist/classes/features/other/CustomHotkeys.js +144 -0
- package/dist/classes/features/other/CustomItemPools.js +128 -0
- package/dist/classes/features/other/CustomPickups.js +118 -0
- package/dist/classes/features/other/CustomStages.js +471 -0
- package/dist/classes/features/other/CustomTrapdoors.js +596 -0
- package/dist/classes/features/other/DebugDisplay.js +699 -0
- package/dist/classes/features/other/DeployJSONRoom.js +301 -0
- package/dist/classes/features/other/DisableAllSound.js +90 -0
- package/dist/classes/features/other/DisableInputs.js +249 -0
- package/dist/classes/features/other/EdenStartingStatsHealth.js +197 -0
- package/dist/classes/features/other/ExtraConsoleCommands.js +292 -0
- package/dist/classes/features/other/FadeInRemover.js +67 -0
- package/dist/classes/features/other/FastReset.js +88 -0
- package/dist/classes/features/other/FlyingDetection.js +64 -0
- package/dist/classes/features/other/ForgottenSwitch.js +43 -0
- package/dist/classes/features/other/ItemPoolDetection.js +187 -0
- package/dist/classes/features/other/ModdedElementDetection.js +399 -0
- package/dist/classes/features/other/ModdedElementSets.js +1251 -0
- package/dist/classes/features/other/NoSirenSteal.js +88 -0
- package/dist/classes/features/other/Pause.js +197 -0
- package/dist/classes/features/other/PersistentEntities.js +168 -0
- package/dist/classes/features/other/PickupIndexCreation.js +229 -0
- package/dist/classes/features/other/PlayerCollectibleTracking.js +102 -0
- package/dist/classes/features/other/PonyDetection.js +86 -0
- package/dist/classes/features/other/PressInput.js +71 -0
- package/dist/classes/features/other/PreventChildEntities.js +60 -0
- package/dist/classes/features/other/PreventGridEntityRespawn.js +159 -0
- package/dist/classes/features/other/RerunDetection.js +69 -0
- package/dist/classes/features/other/RoomClearFrame.js +94 -0
- package/dist/classes/features/other/RoomHistory.js +196 -0
- package/dist/classes/features/other/RunInNFrames.js +323 -0
- package/dist/classes/features/other/RunNextRoom.js +53 -0
- package/dist/classes/features/other/RunNextRun.js +60 -0
- package/dist/classes/features/other/SaveDataManager.js +383 -0
- package/dist/classes/features/other/SpawnRockAltRewards.js +469 -0
- package/dist/classes/features/other/StageHistory.js +244 -0
- package/dist/classes/features/other/StartAmbush.js +62 -0
- package/dist/classes/features/other/TaintedLazarusPlayers.js +115 -0
- package/dist/classes/features/other/UnlockAchievementsDetection.js +60 -0
- package/dist/classes/features/other/customStages/backdrop.js +195 -0
- package/dist/classes/features/other/customStages/constants.js +19 -0
- package/dist/classes/features/other/customStages/gridEntities.js +177 -0
- package/dist/classes/features/other/customStages/shadows.js +67 -0
- package/dist/classes/features/other/customStages/streakText.js +222 -0
- package/dist/classes/features/other/customStages/utils.js +65 -0
- package/dist/classes/features/other/customStages/v.js +27 -0
- package/dist/classes/features/other/customStages/versusScreen.js +227 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayBomb.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayDoor.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayEffect.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayFamiliar.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayKnife.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayLaser.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayNPC.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPickup.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPit.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPlayer.js +25 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPoop.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayPressurePlate.js +25 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayProjectile.js +23 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayRock.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplaySlot.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplaySpikes.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayTNT.js +22 -0
- package/dist/classes/features/other/debugDisplay/DebugDisplayTear.js +23 -0
- package/dist/classes/features/other/debugDisplay/utils.js +13 -0
- package/dist/classes/features/other/extraConsoleCommands/commands.js +1598 -0
- package/dist/classes/features/other/extraConsoleCommands/subroutines.js +135 -0
- package/dist/classes/features/other/extraConsoleCommands/v.js +30 -0
- package/dist/classes/features/other/saveDataManager/constants.js +4 -0
- package/dist/classes/features/other/saveDataManager/glowingHourGlass.js +106 -0
- package/dist/classes/features/other/saveDataManager/loadFromDisk.js +69 -0
- package/dist/classes/features/other/saveDataManager/restoreDefaults.js +69 -0
- package/dist/classes/features/other/saveDataManager/saveToDisk.js +46 -0
- package/dist/classes/private/CustomCallback.js +59 -0
- package/dist/classes/private/Feature.js +39 -0
- package/dist/core/cachedClasses.js +61 -0
- package/dist/core/constants.js +289 -0
- package/dist/core/constantsFirstLast.js +98 -0
- package/dist/core/constantsVanilla.js +131 -0
- package/dist/core/upgradeMod.js +71 -0
- package/dist/customStageMetadata.json +1 -0
- package/dist/data/itempools.json +16625 -0
- package/dist/decorators.js +21 -0
- package/dist/enums/AmbushType.js +9 -0
- package/dist/enums/CornerType.js +11 -0
- package/dist/enums/HealthType.js +20 -0
- package/dist/enums/ISCFeature.js +65 -0
- package/dist/enums/LadderSubTypeCustom.js +20 -0
- package/dist/enums/ModCallbackCustom.js +2477 -0
- package/dist/enums/MysteriousPaperEffect.js +16 -0
- package/dist/enums/PlayerStat.js +37 -0
- package/dist/enums/PocketItemType.js +13 -0
- package/dist/enums/RockAltType.js +23 -0
- package/dist/enums/SaveDataKey.js +14 -0
- package/dist/enums/SerializationType.js +10 -0
- package/dist/enums/SlotDestructionType.js +22 -0
- package/dist/enums/private/GridEntityTypeCustom.js +10 -0
- package/dist/enums/private/SerializationBrand.js +42 -0
- package/dist/enums/private/StageTravelState.js +13 -0
- package/dist/enums/private/TrapdoorAnimation.js +9 -0
- package/dist/enums/private/UIStreakAnimation.js +10 -0
- package/dist/features.js +150 -0
- package/dist/functions/ambush.js +26 -0
- package/dist/functions/array.js +586 -0
- package/dist/functions/arrayLua.js +81 -0
- package/dist/functions/benchmark.js +36 -0
- package/dist/functions/bitSet128.js +64 -0
- package/dist/functions/bitwise.js +82 -0
- package/dist/functions/bombs.js +14 -0
- package/dist/functions/bosses.js +238 -0
- package/dist/functions/cards.js +164 -0
- package/dist/functions/challenges.js +117 -0
- package/dist/functions/characters.js +182 -0
- package/dist/functions/charge.js +251 -0
- package/dist/functions/chargeBar.js +54 -0
- package/dist/functions/collectibleTag.js +24 -0
- package/dist/functions/collectibles.js +581 -0
- package/dist/functions/color.js +88 -0
- package/dist/functions/console.js +18 -0
- package/dist/functions/curses.js +37 -0
- package/dist/functions/debugFunctions.js +108 -0
- package/dist/functions/decorators.js +113 -0
- package/dist/functions/deepCopy.js +406 -0
- package/dist/functions/deepCopyTests.js +361 -0
- package/dist/functions/dimensions.js +30 -0
- package/dist/functions/direction.js +78 -0
- package/dist/functions/doors.js +524 -0
- package/dist/functions/easing.js +327 -0
- package/dist/functions/effects.js +14 -0
- package/dist/functions/emptyRoom.js +79 -0
- package/dist/functions/entities.js +529 -0
- package/dist/functions/entitiesSpecific.js +582 -0
- package/dist/functions/entityTypes.js +9 -0
- package/dist/functions/enums.js +244 -0
- package/dist/functions/external.js +59 -0
- package/dist/functions/familiars.js +136 -0
- package/dist/functions/flag.js +146 -0
- package/dist/functions/frames.js +166 -0
- package/dist/functions/globals.js +291 -0
- package/dist/functions/gridEntities.js +990 -0
- package/dist/functions/gridEntitiesSpecific.js +456 -0
- package/dist/functions/gridIndex.js +35 -0
- package/dist/functions/hash.js +75 -0
- package/dist/functions/hex.js +57 -0
- package/dist/functions/input.js +185 -0
- package/dist/functions/isaacAPIClass.js +157 -0
- package/dist/functions/itemPool.js +118 -0
- package/dist/functions/jsonHelpers.js +73 -0
- package/dist/functions/jsonRoom.js +184 -0
- package/dist/functions/kColor.js +89 -0
- package/dist/functions/language.js +16 -0
- package/dist/functions/level.js +66 -0
- package/dist/functions/levelGrid.js +497 -0
- package/dist/functions/log.js +86 -0
- package/dist/functions/logEntities.js +308 -0
- package/dist/functions/logMisc.js +510 -0
- package/dist/functions/map.js +121 -0
- package/dist/functions/math.js +149 -0
- package/dist/functions/merge.js +159 -0
- package/dist/functions/mergeTests.js +313 -0
- package/dist/functions/minimap.js +204 -0
- package/dist/functions/modFeatures.js +39 -0
- package/dist/functions/newArray.js +30 -0
- package/dist/functions/nextStage.js +169 -0
- package/dist/functions/npcDataStructures.js +146 -0
- package/dist/functions/npcs.js +132 -0
- package/dist/functions/pickupVariants.js +63 -0
- package/dist/functions/pickups.js +168 -0
- package/dist/functions/pickupsSpecific.js +376 -0
- package/dist/functions/pills.js +200 -0
- package/dist/functions/playerCenter.js +53 -0
- package/dist/functions/playerCollectibles.js +300 -0
- package/dist/functions/playerDataStructures.js +145 -0
- package/dist/functions/playerEffects.js +63 -0
- package/dist/functions/playerHealth.js +604 -0
- package/dist/functions/playerIndex.js +186 -0
- package/dist/functions/playerTrinkets.js +149 -0
- package/dist/functions/players.js +471 -0
- package/dist/functions/pocketItems.js +165 -0
- package/dist/functions/positionVelocity.js +158 -0
- package/dist/functions/pressurePlate.js +26 -0
- package/dist/functions/projectiles.js +57 -0
- package/dist/functions/random.js +90 -0
- package/dist/functions/readOnly.js +33 -0
- package/dist/functions/render.js +36 -0
- package/dist/functions/revive.js +151 -0
- package/dist/functions/rng.js +140 -0
- package/dist/functions/rockAlt.js +50 -0
- package/dist/functions/roomData.js +155 -0
- package/dist/functions/roomGrid.js +97 -0
- package/dist/functions/roomShape.js +143 -0
- package/dist/functions/roomShapeWalls.js +187 -0
- package/dist/functions/roomTransition.js +43 -0
- package/dist/functions/rooms.js +782 -0
- package/dist/functions/run.js +121 -0
- package/dist/functions/seeds.js +22 -0
- package/dist/functions/serialization.js +98 -0
- package/dist/functions/set.js +215 -0
- package/dist/functions/slots.js +41 -0
- package/dist/functions/sort.js +158 -0
- package/dist/functions/sound.js +45 -0
- package/dist/functions/spawnCollectible.js +112 -0
- package/dist/functions/sprites.js +130 -0
- package/dist/functions/stage.js +540 -0
- package/dist/functions/stats.js +104 -0
- package/dist/functions/storyBosses.js +63 -0
- package/dist/functions/string.js +194 -0
- package/dist/functions/table.js +162 -0
- package/dist/functions/tears.js +128 -0
- package/dist/functions/transformations.js +89 -0
- package/dist/functions/trinketGive.js +145 -0
- package/dist/functions/trinkets.js +213 -0
- package/dist/functions/tstlClass.js +97 -0
- package/dist/functions/types.js +225 -0
- package/dist/functions/ui.js +148 -0
- package/dist/functions/utils.d.ts +2 -0
- package/dist/functions/utils.d.ts.map +1 -1
- package/dist/functions/utils.js +195 -0
- package/dist/functions/utils.lua +4 -1
- package/dist/functions/vector.js +150 -0
- package/dist/functions/versusScreen.js +58 -0
- package/dist/functions/weighted.js +57 -0
- package/dist/index.js +219 -0
- package/dist/index.rollup.d.ts +2 -0
- package/dist/indexLua.js +220 -0
- package/dist/interfaces/ChargeBarSprites.js +2 -0
- package/dist/interfaces/Corner.js +2 -0
- package/dist/interfaces/CustomStageTSConfig.js +2 -0
- package/dist/interfaces/GridEntityCustomData.js +2 -0
- package/dist/interfaces/JSONRoomsFile.js +2 -0
- package/dist/interfaces/PlayerHealth.js +2 -0
- package/dist/interfaces/PlayerStats.js +4 -0
- package/dist/interfaces/PocketItemDescription.js +2 -0
- package/dist/interfaces/RoomDescription.js +2 -0
- package/dist/interfaces/SaveData.js +98 -0
- package/dist/interfaces/StageHistoryEntry.js +2 -0
- package/dist/interfaces/TSTLClassMetatable.js +2 -0
- package/dist/interfaces/TrinketSituation.js +2 -0
- package/dist/interfaces/private/AddCallbackParametersCustom.js +4 -0
- package/dist/interfaces/private/CustomStage.js +2 -0
- package/dist/interfaces/private/CustomTrapdoorDescription.js +2 -0
- package/dist/interfaces/private/ModUpgradedInterface.js +2 -0
- package/dist/isaacscript-common.lua +5 -2
- package/dist/maps/PHDPillConversionsMap.js +23 -0
- package/dist/maps/cardNameToTypeMap.js +211 -0
- package/dist/maps/characterNameToTypeMap.js +91 -0
- package/dist/maps/collectibleNameToTypeMap.js +19 -0
- package/dist/maps/defaultPlayerStatMap.js +17 -0
- package/dist/maps/entityTypeVariantToBossIDMap.js +11 -0
- package/dist/maps/falsePHDPillConversionsMap.js +37 -0
- package/dist/maps/gridEntityTypeToBrokenStateMap.js +32 -0
- package/dist/maps/gridEntityXMLMap.js +133 -0
- package/dist/maps/itemPoolTypeToItemPoolName.js +38 -0
- package/dist/maps/keyboardToStringMap.js +71 -0
- package/dist/maps/pillNameToEffectMap.js +91 -0
- package/dist/maps/roomNameToTypeMap.js +43 -0
- package/dist/maps/roomShapeToTopLeftWallGridIndexMap.js +17 -0
- package/dist/maps/transformationNameToPlayerFormMap.js +35 -0
- package/dist/maps/trinketNameToTypeMap.js +19 -0
- package/dist/objects/LRoomShapeToRectangles.js +43 -0
- package/dist/objects/backdropTypeToRockAltType.js +68 -0
- package/dist/objects/batteryNames.js +13 -0
- package/dist/objects/bombNames.js +17 -0
- package/dist/objects/bossIDToEntityTypeVariant.js +228 -0
- package/dist/objects/bossNamePNGFileNames.js +120 -0
- package/dist/objects/bossNames.js +119 -0
- package/dist/objects/bossPortraitPNGFileNames.js +123 -0
- package/dist/objects/cardDescriptions.js +106 -0
- package/dist/objects/cardNames.js +106 -0
- package/dist/objects/challengeBosses.js +60 -0
- package/dist/objects/challengeCharacters.js +58 -0
- package/dist/objects/challengeCollectibleTypes.js +255 -0
- package/dist/objects/challengeNames.js +54 -0
- package/dist/objects/challengeTrinketType.js +58 -0
- package/dist/objects/characterDamageMultipliers.js +49 -0
- package/dist/objects/characterNames.js +48 -0
- package/dist/objects/characterSpritePNGFileNames.js +50 -0
- package/dist/objects/characterStartingCollectibleTypes.js +105 -0
- package/dist/objects/characterStartingTrinketTypes.js +90 -0
- package/dist/objects/chestNames.js +20 -0
- package/dist/objects/coinNames.js +16 -0
- package/dist/objects/coinSubTypeToValue.js +15 -0
- package/dist/objects/collectibleDescriptions.js +742 -0
- package/dist/objects/collectibleNames.js +745 -0
- package/dist/objects/colors.js +26 -0
- package/dist/objects/directionNames.js +11 -0
- package/dist/objects/directionToDegrees.js +11 -0
- package/dist/objects/directionToMoveAction.js +11 -0
- package/dist/objects/directionToShootAction.js +11 -0
- package/dist/objects/directionToVector.js +13 -0
- package/dist/objects/doorSlotFlagToDoorSlot.js +15 -0
- package/dist/objects/doorSlotToDirection.js +15 -0
- package/dist/objects/doorSlotToDoorSlotFlag.js +15 -0
- package/dist/objects/gridEntityTypeToANM2Name.js +37 -0
- package/dist/objects/heartNames.js +21 -0
- package/dist/objects/isaacAPIClassTypeToBrand.js +12 -0
- package/dist/objects/isaacAPIClassTypeToFunctions.js +46 -0
- package/dist/objects/itemPoolTypeToCollectibleTypesSet.js +57 -0
- package/dist/objects/kColors.js +27 -0
- package/dist/objects/keyNames.js +13 -0
- package/dist/objects/languageNames.js +13 -0
- package/dist/objects/oppositeDoorSlots.js +15 -0
- package/dist/objects/pillEffectClasses.js +57 -0
- package/dist/objects/pillEffectNames.js +57 -0
- package/dist/objects/pillEffectTypeToPillEffects.js +23 -0
- package/dist/objects/pillEffectTypes.js +57 -0
- package/dist/objects/playerNamePNGFileNames.js +57 -0
- package/dist/objects/playerPortraitPNGFileNames.js +54 -0
- package/dist/objects/roomShapeBounds.js +48 -0
- package/dist/objects/roomShapeCorners.js +330 -0
- package/dist/objects/roomShapeLayoutSizes.js +41 -0
- package/dist/objects/roomShapeToBottomRightPosition.js +25 -0
- package/dist/objects/roomShapeToDoorSlotCoordinates.js +111 -0
- package/dist/objects/roomShapeToDoorSlots.js +72 -0
- package/dist/objects/roomShapeToDoorSlotsToGridIndexDelta.js +118 -0
- package/dist/objects/roomShapeToGridWidth.js +20 -0
- package/dist/objects/roomShapeToTopLeftPosition.js +26 -0
- package/dist/objects/roomShapeVolumes.js +32 -0
- package/dist/objects/roomTypeNames.js +35 -0
- package/dist/objects/roomTypeSpecialGotoPrefixes.js +35 -0
- package/dist/objects/sackNames.js +11 -0
- package/dist/objects/slotNames.js +26 -0
- package/dist/objects/stageIDNames.js +43 -0
- package/dist/objects/stageToMusic.js +91 -0
- package/dist/objects/stageToStageID.js +117 -0
- package/dist/objects/stageTypeSuffixes.js +14 -0
- package/dist/objects/transformationNames.js +20 -0
- package/dist/objects/trinketDescriptions.js +199 -0
- package/dist/objects/trinketNames.js +202 -0
- package/dist/objects/versusScreenBackgroundColors.js +46 -0
- package/dist/objects/versusScreenDirtSpotColors.js +46 -0
- package/dist/patchErrorFunctions.js +65 -0
- package/dist/serialization.js +21 -0
- package/dist/sets/LRoomShapesSet.js +11 -0
- package/dist/sets/bigRoomShapesSet.js +14 -0
- package/dist/sets/bossSets.js +465 -0
- package/dist/sets/charactersThatStartWithAnActiveItemSet.js +18 -0
- package/dist/sets/charactersWithBlackHeartFromEternalHeartSet.js +9 -0
- package/dist/sets/charactersWithFreeDevilDealsSet.js +6 -0
- package/dist/sets/charactersWithNoRedHeartsSet.js +19 -0
- package/dist/sets/charactersWithNoSoulHeartsSet.js +16 -0
- package/dist/sets/consoleCommandsSet.js +64 -0
- package/dist/sets/entitiesWithArmorSet.js +59 -0
- package/dist/sets/familiarsThatShootPlayerTearsSet.js +15 -0
- package/dist/sets/itemConfigCardTypesForCards.js +14 -0
- package/dist/sets/lostStyleCharactersSet.js +16 -0
- package/dist/sets/mineShaftRoomSubTypesSet.js +12 -0
- package/dist/sets/narrowRoomShapesSet.js +11 -0
- package/dist/sets/poopGridEntityXMLTypesSet.js +16 -0
- package/dist/sets/redHeartSubTypesSet.js +10 -0
- package/dist/sets/repentanceBossIDsSet.js +30 -0
- package/dist/sets/sinEntityTypesSet.js +14 -0
- package/dist/sets/singleUseActiveCollectibleTypesSet.js +15 -0
- package/dist/shaderCrashFix.js +24 -0
- package/dist/shouldFire.js +226 -0
- package/dist/types/AddSubtract.js +2 -0
- package/dist/types/AllButFirst.js +2 -0
- package/dist/types/AllButLast.js +2 -0
- package/dist/types/AnyClass.js +2 -0
- package/dist/types/AnyEntity.js +2 -0
- package/dist/types/AnyFunction.js +2 -0
- package/dist/types/AnyGridEntity.js +2 -0
- package/dist/types/CompositionTypeSatisfiesEnum.js +11 -0
- package/dist/types/ConversionHeartSubType.js +2 -0
- package/dist/types/Decrement.js +2 -0
- package/dist/types/ERange.js +2 -0
- package/dist/types/EntityID.js +2 -0
- package/dist/types/FunctionTuple.js +2 -0
- package/dist/types/GridEntityID.js +2 -0
- package/dist/types/HasFunction.js +2 -0
- package/dist/types/IRange.js +2 -0
- package/dist/types/Immutable.js +2 -0
- package/dist/types/Increment.js +2 -0
- package/dist/types/LowercaseKeys.js +2 -0
- package/dist/types/NaturalNumbersLessThan.js +2 -0
- package/dist/types/NaturalNumbersLessThanOrEqualTo.js +2 -0
- package/dist/types/PickingUpItem.js +44 -0
- package/dist/types/PickupIndex.js +2 -0
- package/dist/types/PlayerIndex.js +2 -0
- package/dist/types/PossibleStatType.js +2 -0
- package/dist/types/PublicInterface.js +2 -0
- package/dist/types/ReadonlyMap.js +6 -0
- package/dist/types/ReadonlyRecord.js +2 -0
- package/dist/types/ReadonlySet.js +6 -0
- package/dist/types/StartsWithLowercase.js +2 -0
- package/dist/types/StartsWithUppercase.js +2 -0
- package/dist/types/TSTLClass.js +2 -0
- package/dist/types/Tuple.js +2 -0
- package/dist/types/TupleKeys.js +2 -0
- package/dist/types/TupleToIntersection.js +2 -0
- package/dist/types/TupleToUnion.js +2 -0
- package/dist/types/TupleWithLengthBetween.js +22 -0
- package/dist/types/TupleWithMaxLength.js +27 -0
- package/dist/types/UnionToIntersection.js +2 -0
- package/dist/types/UppercaseKeys.js +2 -0
- package/dist/types/WeightedArray.js +2 -0
- package/dist/types/WidenLiteral.js +2 -0
- package/dist/types/Writable.js +2 -0
- package/dist/types/private/CallbackTuple.js +2 -0
- package/dist/types/private/ModUpgradedWithFeatures.js +2 -0
- package/package.json +1 -1
- package/src/functions/utils.ts +4 -1
- package/src/lib/jsonLua.js +701 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModUpgraded = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const callbacks_1 = require("../callbacks");
|
|
6
|
+
const decorators_1 = require("../decorators");
|
|
7
|
+
const ISCFeature_1 = require("../enums/ISCFeature");
|
|
8
|
+
const ModCallbackCustom_1 = require("../enums/ModCallbackCustom");
|
|
9
|
+
const features_1 = require("../features");
|
|
10
|
+
const debugFunctions_1 = require("../functions/debugFunctions");
|
|
11
|
+
const enums_1 = require("../functions/enums");
|
|
12
|
+
const log_1 = require("../functions/log");
|
|
13
|
+
const tstlClass_1 = require("../functions/tstlClass");
|
|
14
|
+
const types_1 = require("../functions/types");
|
|
15
|
+
const utils_1 = require("../functions/utils");
|
|
16
|
+
/**
|
|
17
|
+
* `isaacscript-common` has many custom callbacks that you can use in your mods. Instead of
|
|
18
|
+
* hijacking the vanilla `Mod` object, we provide a `ModUpgraded` object for you to use, which
|
|
19
|
+
* extends the base class and adds a new method of `AddCallbackCustom`.
|
|
20
|
+
*
|
|
21
|
+
* To upgrade your mod, use the `upgradeMod` helper function.
|
|
22
|
+
*
|
|
23
|
+
* By specifying one or more optional features when upgrading your mod, you will get a version of
|
|
24
|
+
* `ModUpgraded` that has extra methods corresponding to the features that were specified. (This
|
|
25
|
+
* corresponds to the internal-type `ModUpgradedWithFeatures` type, which extends `ModUpgraded`.)
|
|
26
|
+
*/
|
|
27
|
+
class ModUpgraded {
|
|
28
|
+
// -----------------
|
|
29
|
+
// Vanilla variables
|
|
30
|
+
// -----------------
|
|
31
|
+
Name;
|
|
32
|
+
// ----------------
|
|
33
|
+
// Custom variables
|
|
34
|
+
// ----------------
|
|
35
|
+
/** We store a copy of the original mod object so that we can re-implement its functions. */
|
|
36
|
+
mod;
|
|
37
|
+
debug;
|
|
38
|
+
timeThreshold;
|
|
39
|
+
callbacks;
|
|
40
|
+
features;
|
|
41
|
+
// -----------
|
|
42
|
+
// Constructor
|
|
43
|
+
// -----------
|
|
44
|
+
constructor(mod, debug, timeThreshold) {
|
|
45
|
+
this.Name = mod.Name;
|
|
46
|
+
this.mod = mod;
|
|
47
|
+
this.debug = debug;
|
|
48
|
+
this.timeThreshold = timeThreshold;
|
|
49
|
+
this.callbacks = (0, callbacks_1.getCallbacks)();
|
|
50
|
+
this.features = (0, features_1.getFeatures)(this, this.callbacks);
|
|
51
|
+
}
|
|
52
|
+
// ---------------
|
|
53
|
+
// Vanilla methods
|
|
54
|
+
// ---------------
|
|
55
|
+
AddCallback(modCallback, ...args) {
|
|
56
|
+
this.AddPriorityCallback(modCallback, isaac_typescript_definitions_1.CallbackPriority.DEFAULT, ...args);
|
|
57
|
+
}
|
|
58
|
+
AddPriorityCallback(modCallback, priority, ...args) {
|
|
59
|
+
if (this.debug) {
|
|
60
|
+
const callback = args[0];
|
|
61
|
+
const optionalArg = args[1];
|
|
62
|
+
const parentFunctionDescription = (0, log_1.getParentFunctionDescription)();
|
|
63
|
+
const customCallback = type(modCallback) === "string";
|
|
64
|
+
const callbackName = customCallback
|
|
65
|
+
? `${modCallback} (custom callback)`
|
|
66
|
+
: `ModCallback.${isaac_typescript_definitions_1.ModCallback[modCallback]}`;
|
|
67
|
+
const signature = parentFunctionDescription === undefined
|
|
68
|
+
? callbackName
|
|
69
|
+
: `${parentFunctionDescription} - ${callbackName}`;
|
|
70
|
+
/**
|
|
71
|
+
* We don't use the "log" helper function here since it will always show the same "unknown"
|
|
72
|
+
* prefix.
|
|
73
|
+
*/
|
|
74
|
+
const callbackWithLogger = (
|
|
75
|
+
// @ts-expect-error The compiler is not smart enough to know that the callback args should
|
|
76
|
+
// match the callback.
|
|
77
|
+
...callbackArgs) => {
|
|
78
|
+
const startTime = (0, debugFunctions_1.getTime)();
|
|
79
|
+
Isaac.DebugString(`${signature} - START`);
|
|
80
|
+
// @ts-expect-error The compiler is not smart enough to know that the callback args should
|
|
81
|
+
// match the callback.
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, n/no-callback-literal
|
|
83
|
+
const returnValue = callback(...callbackArgs);
|
|
84
|
+
const elapsedTime = (0, debugFunctions_1.getElapsedTimeSince)(startTime);
|
|
85
|
+
if (this.timeThreshold === undefined ||
|
|
86
|
+
this.timeThreshold <= elapsedTime) {
|
|
87
|
+
Isaac.DebugString(`${signature} - END - time: ${elapsedTime}`);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
Isaac.DebugString(`${signature} - END`);
|
|
91
|
+
}
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
93
|
+
return returnValue;
|
|
94
|
+
};
|
|
95
|
+
const newArgs = [callbackWithLogger, optionalArg];
|
|
96
|
+
// @ts-expect-error The compiler is not smart enough to know that the callback args should
|
|
97
|
+
// match the callback.
|
|
98
|
+
this.mod.AddPriorityCallback(modCallback, priority, ...newArgs);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this.mod.AddPriorityCallback(modCallback, priority, ...args);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
HasData() {
|
|
105
|
+
return this.mod.HasData();
|
|
106
|
+
}
|
|
107
|
+
LoadData() {
|
|
108
|
+
return this.mod.LoadData();
|
|
109
|
+
}
|
|
110
|
+
RemoveCallback(modCallback, callback) {
|
|
111
|
+
this.mod.RemoveCallback(modCallback, callback);
|
|
112
|
+
}
|
|
113
|
+
RemoveData() {
|
|
114
|
+
this.mod.RemoveData();
|
|
115
|
+
}
|
|
116
|
+
SaveData(data) {
|
|
117
|
+
this.mod.SaveData(data);
|
|
118
|
+
}
|
|
119
|
+
// ---------------------
|
|
120
|
+
// Custom public methods
|
|
121
|
+
// ---------------------
|
|
122
|
+
/**
|
|
123
|
+
* Registers a function to be executed when an in-game event happens.
|
|
124
|
+
*
|
|
125
|
+
* This method is specifically for events that are provided by the IsaacScript standard library.
|
|
126
|
+
* For example, the `ModCallbackCustom.POST_BOMB_EXPLODE` event corresponds to when a bomb
|
|
127
|
+
* explodes.
|
|
128
|
+
*/
|
|
129
|
+
AddCallbackCustom(modCallbackCustom, ...args) {
|
|
130
|
+
this.AddPriorityCallbackCustom(modCallbackCustom, isaac_typescript_definitions_1.CallbackPriority.DEFAULT, ...args);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The same as the `ModUpgraded.AddCallbackCustom` method, but allows setting a custom priority.
|
|
134
|
+
* By default, callbacks are added with a priority of 0, so this allows you to add early or late
|
|
135
|
+
* callbacks as necessary. See the `CallbackPriority` enum.
|
|
136
|
+
*/
|
|
137
|
+
AddPriorityCallbackCustom(modCallbackCustom, priority, ...args) {
|
|
138
|
+
const callbackClass = this.callbacks[modCallbackCustom];
|
|
139
|
+
// @ts-expect-error The compiler is not smart enough to figure out that the parameters match.
|
|
140
|
+
// eslint-disable-next-line isaacscript/require-variadic-function-argument
|
|
141
|
+
callbackClass.addSubscriber(priority, ...args);
|
|
142
|
+
this.initFeature(callbackClass);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Unregisters a function that was previously registered with the `AddCallbackCustom` method.
|
|
146
|
+
*
|
|
147
|
+
* This method is specifically for events that are provided by the IsaacScript standard library.
|
|
148
|
+
* For example, the `ModCallbackCustom.POST_BOMB_EXPLODE` event corresponds to when a bomb
|
|
149
|
+
* explodes.
|
|
150
|
+
*
|
|
151
|
+
* This method does not care about the tertiary argument. In other words, regardless of the
|
|
152
|
+
* conditions of how you registered the callback, it will be removed.
|
|
153
|
+
*/
|
|
154
|
+
RemoveCallbackCustom(modCallbackCustom, callback) {
|
|
155
|
+
const callbackClass = this.callbacks[modCallbackCustom];
|
|
156
|
+
// @ts-expect-error The compiler is not smart enough to figure out that the parameters match.
|
|
157
|
+
callbackClass.removeSubscriber(callback);
|
|
158
|
+
this.uninitFeature(callbackClass);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Logs every custom callback or extra feature that is currently enabled. Useful for debugging or
|
|
162
|
+
* profiling.
|
|
163
|
+
*/
|
|
164
|
+
logUsedFeatures() {
|
|
165
|
+
// Custom callbacks
|
|
166
|
+
for (const [modCallbackCustomString, callbackClass] of Object.entries(this.callbacks)) {
|
|
167
|
+
if (callbackClass.numConsumers === 0) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const modCallbackCustom = (0, types_1.parseIntSafe)(modCallbackCustomString);
|
|
171
|
+
(0, utils_1.assertDefined)(modCallbackCustom, `Failed to convert the string "${modCallbackCustomString}" representing a "ModCallbackCustom" value to a number.`);
|
|
172
|
+
if (!(0, enums_1.isEnumValue)(modCallbackCustom, ModCallbackCustom_1.ModCallbackCustom)) {
|
|
173
|
+
error(`Failed to convert the number ${modCallbackCustom} to a "ModCallbackCustom" value.`);
|
|
174
|
+
}
|
|
175
|
+
(0, log_1.log)(`- ModCallbackCustom.${ModCallbackCustom_1.ModCallbackCustom[modCallbackCustom]} (${modCallbackCustom})`);
|
|
176
|
+
}
|
|
177
|
+
// Extra features
|
|
178
|
+
for (const [iscFeatureString, featureClass] of Object.entries(this.features)) {
|
|
179
|
+
if (featureClass.numConsumers === 0) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const iscFeature = (0, types_1.parseIntSafe)(iscFeatureString);
|
|
183
|
+
(0, utils_1.assertDefined)(iscFeature, `Failed to convert the string "${iscFeatureString}" representing a "ISCFeature" value to a number.`);
|
|
184
|
+
if (!(0, enums_1.isEnumValue)(iscFeature, ISCFeature_1.ISCFeature)) {
|
|
185
|
+
error(`Failed to convert the number ${iscFeature} to a "ISCFeature" value.`);
|
|
186
|
+
}
|
|
187
|
+
(0, log_1.log)(`- ISCFeature.${ISCFeature_1.ISCFeature[iscFeature]} (${iscFeature})`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// ----------------------
|
|
191
|
+
// Custom private methods
|
|
192
|
+
// ----------------------
|
|
193
|
+
/**
|
|
194
|
+
* This is used to initialize both custom callbacks and "extra features".
|
|
195
|
+
*
|
|
196
|
+
* This mirrors the `uninitFeature` method.
|
|
197
|
+
*/
|
|
198
|
+
initFeature(feature) {
|
|
199
|
+
feature.numConsumers++;
|
|
200
|
+
if (feature.initialized) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
feature.initialized = true;
|
|
204
|
+
if (feature.v !== undefined) {
|
|
205
|
+
if (feature.featuresUsed === undefined) {
|
|
206
|
+
feature.featuresUsed = [];
|
|
207
|
+
}
|
|
208
|
+
if (!feature.featuresUsed.includes(ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER)) {
|
|
209
|
+
feature.featuresUsed.unshift(ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (feature.featuresUsed !== undefined) {
|
|
213
|
+
for (const featureUsed of feature.featuresUsed) {
|
|
214
|
+
const featureClass = this.features[featureUsed];
|
|
215
|
+
this.initFeature(featureClass);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (feature.callbacksUsed !== undefined) {
|
|
219
|
+
for (const callbackTuple of feature.callbacksUsed) {
|
|
220
|
+
const [modCallback, callbackFunc, optionalArgs] = callbackTuple;
|
|
221
|
+
// TypeScript is not smart enough to know that the arguments match the function.
|
|
222
|
+
this.AddPriorityCallback(modCallback, isaac_typescript_definitions_1.CallbackPriority.IMPORTANT, callbackFunc, ...(optionalArgs ?? []));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (feature.customCallbacksUsed !== undefined) {
|
|
226
|
+
for (const callbackTuple of feature.customCallbacksUsed) {
|
|
227
|
+
const [modCallback, callbackFunc, optionalArgs] = callbackTuple;
|
|
228
|
+
// TypeScript is not smart enough to know that the arguments match the function.
|
|
229
|
+
this.AddPriorityCallbackCustom(modCallback, isaac_typescript_definitions_1.CallbackPriority.IMPORTANT, callbackFunc, ...(optionalArgs ?? []));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (feature.v !== undefined) {
|
|
233
|
+
const className = (0, tstlClass_1.getTSTLClassName)(feature);
|
|
234
|
+
(0, utils_1.assertDefined)(className, "Failed to get the name of a feature.");
|
|
235
|
+
const saveDataManagerClass = this.features[ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER];
|
|
236
|
+
saveDataManagerClass.saveDataManager(className, feature.v, feature.vConditionalFunc);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* This is used to uninitialize both custom callbacks and "extra features".
|
|
241
|
+
*
|
|
242
|
+
* This mirrors the `initFeature` method.
|
|
243
|
+
*/
|
|
244
|
+
uninitFeature(feature) {
|
|
245
|
+
if (feature.numConsumers <= 0) {
|
|
246
|
+
const className = (0, tstlClass_1.getTSTLClassName)(feature) ?? "unknown";
|
|
247
|
+
error(`Failed to uninit feature "${className}" since it has ${feature.numConsumers} consumers, which should never happen.`);
|
|
248
|
+
}
|
|
249
|
+
if (!feature.initialized) {
|
|
250
|
+
const className = (0, tstlClass_1.getTSTLClassName)(feature) ?? "unknown";
|
|
251
|
+
error(`Failed to uninit feature "${className}" since it was not initialized, which should never happen.`);
|
|
252
|
+
}
|
|
253
|
+
feature.numConsumers--;
|
|
254
|
+
if (feature.numConsumers > 0) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
feature.initialized = false;
|
|
258
|
+
if (feature.featuresUsed !== undefined) {
|
|
259
|
+
for (const featureUsed of feature.featuresUsed) {
|
|
260
|
+
const featureClass = this.features[featureUsed];
|
|
261
|
+
this.uninitFeature(featureClass);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (feature.callbacksUsed !== undefined) {
|
|
265
|
+
for (const callbackTuple of feature.callbacksUsed) {
|
|
266
|
+
const [modCallback, callbackFunc] = callbackTuple;
|
|
267
|
+
this.RemoveCallback(modCallback, callbackFunc);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
if (feature.customCallbacksUsed !== undefined) {
|
|
271
|
+
for (const callbackTuple of feature.customCallbacksUsed) {
|
|
272
|
+
const [modCallback, callbackFunc] = callbackTuple;
|
|
273
|
+
this.RemoveCallbackCustom(modCallback, callbackFunc);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
if (feature.v !== undefined) {
|
|
277
|
+
const className = (0, tstlClass_1.getTSTLClassName)(feature);
|
|
278
|
+
(0, utils_1.assertDefined)(className, "Failed to get the name of a feature.");
|
|
279
|
+
const saveDataManagerClass = this.features[ISCFeature_1.ISCFeature.SAVE_DATA_MANAGER];
|
|
280
|
+
saveDataManagerClass.saveDataManagerRemove(className);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Returns the names of the exported class methods from the features that were added. This is
|
|
285
|
+
* called from the "upgradeMod" function, but we want to mark it as private so that end-users
|
|
286
|
+
* don't have access to it.
|
|
287
|
+
*/
|
|
288
|
+
initOptionalFeature(feature) {
|
|
289
|
+
const featureClass = this.features[feature];
|
|
290
|
+
this.initFeature(featureClass);
|
|
291
|
+
return getExportedMethodsFromFeature(featureClass);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
exports.ModUpgraded = ModUpgraded;
|
|
295
|
+
/**
|
|
296
|
+
* In this context, "exported" methods are methods that are annotated with the "@Exported"
|
|
297
|
+
* decorator, which signify that the method should be attached to the `ModUpgraded` class.
|
|
298
|
+
*
|
|
299
|
+
* Exported methods are stored in an internal static array on the class that is created by the
|
|
300
|
+
* decorator.
|
|
301
|
+
*/
|
|
302
|
+
function getExportedMethodsFromFeature(featureClass) {
|
|
303
|
+
const constructor = (0, tstlClass_1.getTSTLClassConstructor)(featureClass);
|
|
304
|
+
const exportedMethodNames = constructor[decorators_1.EXPORTED_METHOD_NAMES_KEY];
|
|
305
|
+
if (exportedMethodNames === undefined) {
|
|
306
|
+
return [];
|
|
307
|
+
}
|
|
308
|
+
return exportedMethodNames.map((name) => {
|
|
309
|
+
const featureClassRecord = featureClass;
|
|
310
|
+
// We cannot split out the method to a separate variable or else the "self" parameter will not
|
|
311
|
+
// be properly passed to the method.
|
|
312
|
+
if (featureClassRecord[name] === undefined) {
|
|
313
|
+
error(`Failed to find a decorated exported method: ${name}`);
|
|
314
|
+
}
|
|
315
|
+
// In order for "this" to work properly in the method, we have to wrap the method invocation in
|
|
316
|
+
// an arrow function.
|
|
317
|
+
const wrappedMethod = (...args) =>
|
|
318
|
+
// We use a non-null assertion since we have already validated that the function exists. (See
|
|
319
|
+
// the above comment.)
|
|
320
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
321
|
+
featureClassRecord[name](...args);
|
|
322
|
+
return [name, wrappedMethod];
|
|
323
|
+
});
|
|
324
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityTakeDmgFilter = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
class EntityTakeDmgFilter extends CustomCallback_1.CustomCallback {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
// 11
|
|
12
|
+
[isaac_typescript_definitions_1.ModCallback.ENTITY_TAKE_DMG, this.entityTakeDmg],
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
shouldFire = shouldFire_1.shouldFireEntity;
|
|
16
|
+
// ModCallback.ENTITY_TAKE_DMG (11)
|
|
17
|
+
entityTakeDmg = (entity, amount, damageFlags, source, countdownFrames) => this.fire(entity, amount, damageFlags, source, countdownFrames);
|
|
18
|
+
}
|
|
19
|
+
exports.EntityTakeDmgFilter = EntityTakeDmgFilter;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityTakeDmgPlayer = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
class EntityTakeDmgPlayer extends CustomCallback_1.CustomCallback {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
// 11
|
|
12
|
+
[
|
|
13
|
+
isaac_typescript_definitions_1.ModCallback.ENTITY_TAKE_DMG,
|
|
14
|
+
this.entityTakeDmgPlayer,
|
|
15
|
+
[isaac_typescript_definitions_1.EntityType.PLAYER],
|
|
16
|
+
],
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
shouldFire = shouldFire_1.shouldFirePlayer;
|
|
20
|
+
// ModCallback.ENTITY_TAKE_DMG (11)
|
|
21
|
+
entityTakeDmgPlayer = (entity, amount, damageFlags, source, countdownFrames) => {
|
|
22
|
+
const player = entity.ToPlayer();
|
|
23
|
+
if (player === undefined) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return this.fire(player, amount, damageFlags, source, countdownFrames);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.EntityTakeDmgPlayer = EntityTakeDmgPlayer;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputActionFilter = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
6
|
+
class InputActionFilter extends CustomCallback_1.CustomCallback {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.callbacksUsed = [
|
|
10
|
+
// 13
|
|
11
|
+
[isaac_typescript_definitions_1.ModCallback.INPUT_ACTION, this.inputAction],
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
shouldFire = (fireArgs, optionalArgs) => {
|
|
15
|
+
const [_entity, inputHook, buttonAction] = fireArgs;
|
|
16
|
+
const [callbackInputHook, callbackButtonAction] = optionalArgs;
|
|
17
|
+
return ((callbackInputHook === undefined || callbackInputHook === inputHook) &&
|
|
18
|
+
(callbackButtonAction === undefined ||
|
|
19
|
+
callbackButtonAction === buttonAction));
|
|
20
|
+
};
|
|
21
|
+
// ModCallback.INPUT_ACTION (13)
|
|
22
|
+
inputAction = (entity, inputHook, buttonAction) => this.fire(entity, inputHook, buttonAction);
|
|
23
|
+
}
|
|
24
|
+
exports.InputActionFilter = InputActionFilter;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputActionPlayer = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
6
|
+
class InputActionPlayer extends CustomCallback_1.CustomCallback {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.callbacksUsed = [
|
|
10
|
+
// 13
|
|
11
|
+
[isaac_typescript_definitions_1.ModCallback.INPUT_ACTION, this.inputAction],
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
shouldFire = (fireArgs, optionalArgs) => {
|
|
15
|
+
const [player, inputHook, buttonAction] = fireArgs;
|
|
16
|
+
const [callbackPlayerVariant, callbackCharacter, callbackInputHook, callbackButtonAction,] = optionalArgs;
|
|
17
|
+
const character = player.GetPlayerType();
|
|
18
|
+
return ((callbackPlayerVariant === undefined ||
|
|
19
|
+
callbackPlayerVariant === player.Variant) &&
|
|
20
|
+
(callbackCharacter === undefined || callbackCharacter === character) &&
|
|
21
|
+
(callbackInputHook === undefined || callbackInputHook === inputHook) &&
|
|
22
|
+
(callbackButtonAction === undefined ||
|
|
23
|
+
callbackButtonAction === buttonAction));
|
|
24
|
+
};
|
|
25
|
+
// ModCallback.INPUT_ACTION (13)
|
|
26
|
+
inputAction = (entity, inputHook, buttonAction) => {
|
|
27
|
+
if (entity === undefined) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const player = entity.ToPlayer();
|
|
31
|
+
if (player === undefined) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return this.fire(player, inputHook, buttonAction);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.InputActionPlayer = InputActionPlayer;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostAmbushFinished = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const cachedClasses_1 = require("../../core/cachedClasses");
|
|
6
|
+
const ambush_1 = require("../../functions/ambush");
|
|
7
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
8
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
9
|
+
const v = {
|
|
10
|
+
room: {
|
|
11
|
+
ambushDone: false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
class PostAmbushFinished extends CustomCallback_1.CustomCallback {
|
|
15
|
+
v = v;
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.callbacksUsed = [
|
|
19
|
+
// 1
|
|
20
|
+
[isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
shouldFire = shouldFire_1.shouldFireAmbush;
|
|
24
|
+
postUpdate = () => {
|
|
25
|
+
if (v.room.ambushDone) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const room = cachedClasses_1.game.GetRoom();
|
|
29
|
+
const ambushDone = room.IsAmbushDone();
|
|
30
|
+
if (!ambushDone) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
v.room.ambushDone = true;
|
|
34
|
+
const ambushType = (0, ambush_1.getAmbushType)();
|
|
35
|
+
if (ambushType !== undefined) {
|
|
36
|
+
this.fire(ambushType);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.PostAmbushFinished = PostAmbushFinished;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostAmbushStarted = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const cachedClasses_1 = require("../../core/cachedClasses");
|
|
6
|
+
const ambush_1 = require("../../functions/ambush");
|
|
7
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
8
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
9
|
+
const v = {
|
|
10
|
+
room: {
|
|
11
|
+
ambushActive: false,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
class PostAmbushStarted extends CustomCallback_1.CustomCallback {
|
|
15
|
+
v = v;
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.callbacksUsed = [
|
|
19
|
+
// 1
|
|
20
|
+
[isaac_typescript_definitions_1.ModCallback.POST_UPDATE, this.postUpdate],
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
shouldFire = shouldFire_1.shouldFireAmbush;
|
|
24
|
+
postUpdate = () => {
|
|
25
|
+
if (v.room.ambushActive) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const room = cachedClasses_1.game.GetRoom();
|
|
29
|
+
const ambushActive = room.IsAmbushActive();
|
|
30
|
+
if (!ambushActive) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
v.room.ambushActive = true;
|
|
34
|
+
const ambushType = (0, ambush_1.getAmbushType)();
|
|
35
|
+
if (ambushType !== undefined) {
|
|
36
|
+
this.fire(ambushType);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.PostAmbushStarted = PostAmbushStarted;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostBombExploded = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const constants_1 = require("../../core/constants");
|
|
6
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
7
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
8
|
+
class PostBombExploded extends CustomCallback_1.CustomCallback {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
this.callbacksUsed = [
|
|
12
|
+
// 58
|
|
13
|
+
[isaac_typescript_definitions_1.ModCallback.POST_BOMB_UPDATE, this.postBombUpdate],
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
shouldFire = shouldFire_1.shouldFireBomb;
|
|
17
|
+
// ModCallback.POST_BOMB_UPDATE (58)
|
|
18
|
+
postBombUpdate = (bomb) => {
|
|
19
|
+
if (bomb.FrameCount === constants_1.BOMB_EXPLODE_FRAME) {
|
|
20
|
+
this.fire(bomb);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
exports.PostBombExploded = PostBombExploded;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostBombInitFilter = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
class PostBombInitFilter extends CustomCallback_1.CustomCallback {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
// 57
|
|
12
|
+
[isaac_typescript_definitions_1.ModCallback.POST_BOMB_INIT, this.postBombInit],
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
shouldFire = shouldFire_1.shouldFireBomb;
|
|
16
|
+
// ModCallback.POST_BOMB_INIT (57)
|
|
17
|
+
postBombInit = (bomb) => {
|
|
18
|
+
this.fire(bomb);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.PostBombInitFilter = PostBombInitFilter;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostBombInitLate = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
const v = {
|
|
8
|
+
room: {
|
|
9
|
+
firedSet: new Set(),
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
class PostBombInitLate extends CustomCallback_1.CustomCallback {
|
|
13
|
+
v = v;
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.callbacksUsed = [
|
|
17
|
+
// 58
|
|
18
|
+
[isaac_typescript_definitions_1.ModCallback.POST_BOMB_UPDATE, this.postBombUpdate],
|
|
19
|
+
];
|
|
20
|
+
}
|
|
21
|
+
shouldFire = shouldFire_1.shouldFireBomb;
|
|
22
|
+
// ModCallback.POST_BOMB_UPDATE (58)
|
|
23
|
+
postBombUpdate = (bomb) => {
|
|
24
|
+
const ptrHash = GetPtrHash(bomb);
|
|
25
|
+
if (!v.room.firedSet.has(ptrHash)) {
|
|
26
|
+
v.room.firedSet.add(ptrHash);
|
|
27
|
+
this.fire(bomb);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.PostBombInitLate = PostBombInitLate;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostBombRenderFilter = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
class PostBombRenderFilter extends CustomCallback_1.CustomCallback {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
// 59
|
|
12
|
+
[isaac_typescript_definitions_1.ModCallback.POST_BOMB_RENDER, this.postBombUpdate],
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
shouldFire = shouldFire_1.shouldFireBomb;
|
|
16
|
+
// ModCallback.POST_BOMB_RENDER (59)
|
|
17
|
+
postBombUpdate = (bomb, renderOffset) => {
|
|
18
|
+
this.fire(bomb, renderOffset);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.PostBombRenderFilter = PostBombRenderFilter;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostBombUpdateFilter = void 0;
|
|
4
|
+
const isaac_typescript_definitions_1 = require("isaac-typescript-definitions");
|
|
5
|
+
const shouldFire_1 = require("../../shouldFire");
|
|
6
|
+
const CustomCallback_1 = require("../private/CustomCallback");
|
|
7
|
+
class PostBombUpdateFilter extends CustomCallback_1.CustomCallback {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.callbacksUsed = [
|
|
11
|
+
// 58
|
|
12
|
+
[isaac_typescript_definitions_1.ModCallback.POST_BOMB_UPDATE, this.postBombUpdate],
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
shouldFire = shouldFire_1.shouldFireBomb;
|
|
16
|
+
// ModCallback.POST_BOMB_UPDATE (58)
|
|
17
|
+
postBombUpdate = (bomb) => {
|
|
18
|
+
this.fire(bomb);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.PostBombUpdateFilter = PostBombUpdateFilter;
|