isaacscript-common 13.3.4 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1644 -441
- package/dist/isaacscript-common.lua +19643 -16276
- package/dist/src/callbacks/customRevive.lua +10 -1
- package/dist/src/callbacks/postAmbush.d.ts.map +1 -1
- package/dist/src/callbacks/postAmbush.lua +7 -12
- package/dist/src/callbacks/postBombExploded.lua +3 -3
- package/dist/src/callbacks/postDoorRender.lua +2 -2
- package/dist/src/callbacks/postEffectStateChanged.lua +3 -3
- package/dist/src/callbacks/postFamiliarStateChanged.lua +3 -3
- package/dist/src/callbacks/postFlip.lua +1 -1
- package/dist/src/callbacks/postGridEntity.lua +2 -2
- package/dist/src/callbacks/postNPCStateChanged.lua +3 -3
- package/dist/src/callbacks/postPickupStateChanged.lua +3 -3
- package/dist/src/callbacks/postPlayerCollectible.d.ts.map +1 -1
- package/dist/src/callbacks/postPlayerCollectible.lua +5 -9
- package/dist/src/callbacks/postRoomClearChanged.d.ts.map +1 -1
- package/dist/src/callbacks/postRoomClearChanged.lua +3 -5
- package/dist/src/callbacks/reorderedCallbacks.lua +7 -7
- package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts → postBombExploded.d.ts} +1 -1
- package/dist/src/callbacks/subscriptions/{postBoneExploded.d.ts.map → postBombExploded.d.ts.map} +1 -1
- package/dist/src/callbacks/subscriptions/{postBoneExploded.lua → postBombExploded.lua} +0 -0
- package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postCollectibleEmpty.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postCollectibleInitFirst.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts +4 -2
- package/dist/src/callbacks/subscriptions/postCursedTeleport.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postCursedTeleport.lua +13 -1
- package/dist/src/callbacks/subscriptions/postGridEntityBroken.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityBroken.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityBroken.lua +3 -3
- package/dist/src/callbacks/subscriptions/postGridEntityInit.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityInit.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityInit.lua +3 -3
- package/dist/src/callbacks/subscriptions/postGridEntityRemove.d.ts +3 -3
- package/dist/src/callbacks/subscriptions/postGridEntityRemove.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityRemove.lua +4 -4
- package/dist/src/callbacks/subscriptions/postGridEntityRender.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityRender.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityRender.lua +3 -3
- package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityStateChanged.lua +3 -3
- package/dist/src/callbacks/subscriptions/postGridEntityUpdate.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityUpdate.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postGridEntityUpdate.lua +3 -3
- package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postHolyMantleRemoved.lua +2 -2
- package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postPEffectUpdateReordered.lua +2 -2
- package/dist/src/callbacks/subscriptions/postRockRender.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postRockRender.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postRockRender.lua +3 -3
- package/dist/src/callbacks/subscriptions/postRockUpdate.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postRockUpdate.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postRockUpdate.lua +3 -3
- package/dist/src/callbacks/subscriptions/postSpikesRender.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postSpikesRender.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postSpikesRender.lua +3 -3
- package/dist/src/callbacks/subscriptions/postSpikesUpdate.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postSpikesUpdate.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postSpikesUpdate.lua +3 -3
- package/dist/src/callbacks/subscriptions/postTNTRender.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postTNTRender.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postTNTRender.lua +3 -3
- package/dist/src/callbacks/subscriptions/postTNTUpdate.d.ts +1 -1
- package/dist/src/callbacks/subscriptions/postTNTUpdate.d.ts.map +1 -1
- package/dist/src/callbacks/subscriptions/postTNTUpdate.lua +3 -3
- package/dist/src/callbacks.d.ts +106 -0
- package/dist/src/callbacks.d.ts.map +1 -0
- package/dist/src/callbacks.lua +176 -0
- package/dist/src/classes/DefaultMap.d.ts.map +1 -1
- package/dist/src/classes/ModFeature.d.ts +11 -0
- package/dist/src/classes/ModFeature.d.ts.map +1 -0
- package/dist/src/classes/ModFeature.lua +13 -0
- package/dist/src/classes/ModUpgraded.d.ts +49 -11
- package/dist/src/classes/ModUpgraded.d.ts.map +1 -1
- package/dist/src/classes/ModUpgraded.lua +118 -16
- package/dist/src/classes/callbacks/PostAmbushFinished.d.ts +12 -0
- package/dist/src/classes/callbacks/PostAmbushFinished.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostAmbushFinished.lua +37 -0
- package/dist/src/classes/callbacks/PostAmbushStarted.d.ts +12 -0
- package/dist/src/classes/callbacks/PostAmbushStarted.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostAmbushStarted.lua +37 -0
- package/dist/src/classes/callbacks/PostBombExploded.d.ts +7 -0
- package/dist/src/classes/callbacks/PostBombExploded.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostBombExploded.lua +24 -0
- package/dist/src/classes/callbacks/PostBombInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostBombInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostBombInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostBoneSwing.d.ts +14 -0
- package/dist/src/classes/callbacks/PostBoneSwing.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostBoneSwing.lua +43 -0
- package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts +17 -0
- package/dist/src/classes/callbacks/PostCollectibleEmpty.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostCollectibleEmpty.lua +47 -0
- package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts +13 -0
- package/dist/src/classes/callbacks/PostCollectibleInitFirst.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostCollectibleInitFirst.lua +32 -0
- package/dist/src/classes/callbacks/PostCursedTeleport.d.ts +20 -0
- package/dist/src/classes/callbacks/PostCursedTeleport.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostCursedTeleport.lua +113 -0
- package/dist/src/classes/callbacks/PostCustomRevive.d.ts +6 -0
- package/dist/src/classes/callbacks/PostCustomRevive.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostCustomRevive.lua +17 -0
- package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts +15 -0
- package/dist/src/classes/callbacks/PostDiceRoomActivated.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostDiceRoomActivated.lua +44 -0
- package/dist/src/classes/callbacks/PostDoorRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostDoorRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostDoorRender.lua +24 -0
- package/dist/src/classes/callbacks/PostDoorUpdate.d.ts +7 -0
- package/dist/src/classes/callbacks/PostDoorUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostDoorUpdate.lua +24 -0
- package/dist/src/classes/callbacks/PostEffectInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostEffectInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostEffectInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts +13 -0
- package/dist/src/classes/callbacks/PostEffectStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostEffectStateChanged.lua +33 -0
- package/dist/src/classes/callbacks/PostEsauJr.d.ts +6 -0
- package/dist/src/classes/callbacks/PostEsauJr.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostEsauJr.lua +17 -0
- package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostFamiliarInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostFamiliarInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts +13 -0
- package/dist/src/classes/callbacks/PostFamiliarStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostFamiliarStateChanged.lua +33 -0
- package/dist/src/classes/callbacks/PostFirstEsauJr.d.ts +6 -0
- package/dist/src/classes/callbacks/PostFirstEsauJr.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostFirstEsauJr.lua +17 -0
- package/dist/src/classes/callbacks/PostFirstFlip.d.ts +6 -0
- package/dist/src/classes/callbacks/PostFirstFlip.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostFirstFlip.lua +17 -0
- package/dist/src/classes/callbacks/PostFlip.d.ts +6 -0
- package/dist/src/classes/callbacks/PostFlip.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostFlip.lua +17 -0
- package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGameStartedReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGameStartedReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGameStartedReorderedLast.lua +17 -0
- package/dist/src/classes/callbacks/PostGreedModeWave.d.ts +12 -0
- package/dist/src/classes/callbacks/PostGreedModeWave.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGreedModeWave.lua +34 -0
- package/dist/src/classes/callbacks/PostGridEntityBroken.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityBroken.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityBroken.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityCollision.d.ts +9 -0
- package/dist/src/classes/callbacks/PostGridEntityCollision.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCollision.lua +36 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomBroken.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomBroken.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomBroken.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomCollision.d.ts +9 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomCollision.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomCollision.lua +31 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomInit.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomInit.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomInit.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomRemove.d.ts +9 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomRemove.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomRemove.lua +25 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomStateChanged.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityCustomUpdate.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityInit.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityInit.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityInit.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityRemove.d.ts +9 -0
- package/dist/src/classes/callbacks/PostGridEntityRemove.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityRemove.lua +28 -0
- package/dist/src/classes/callbacks/PostGridEntityStateChanged.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityStateChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityStateChanged.lua +17 -0
- package/dist/src/classes/callbacks/PostGridEntityUpdate.d.ts +6 -0
- package/dist/src/classes/callbacks/PostGridEntityUpdate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostGridEntityUpdate.lua +17 -0
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts +14 -0
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostHolyMantleRemoved.lua +35 -0
- package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts +12 -0
- package/dist/src/classes/callbacks/PostKnifeInitLate.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostKnifeInitLate.lua +27 -0
- package/dist/src/classes/callbacks/PostNewLevelReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostNewLevelReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostNewLevelReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts +13 -0
- package/dist/src/classes/callbacks/PostNewRoomEarly.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostNewRoomEarly.lua +65 -0
- package/dist/src/classes/callbacks/PostNewRoomReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostNewRoomReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostNewRoomReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostPEffectUpdateReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostPEffectUpdateReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPEffectUpdateReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostPitRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostPitRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPitRender.lua +24 -0
- package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts +15 -0
- package/dist/src/classes/callbacks/PostPlayerFatalDamage.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerFatalDamage.lua +87 -0
- package/dist/src/classes/callbacks/PostPlayerRenderReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostPlayerRenderReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerRenderReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostPlayerUpdateReordered.d.ts +6 -0
- package/dist/src/classes/callbacks/PostPlayerUpdateReordered.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostPlayerUpdateReordered.lua +17 -0
- package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts +13 -0
- package/dist/src/classes/callbacks/PostRoomClearChanged.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostRoomClearChanged.lua +33 -0
- package/dist/src/classes/callbacks/PostSpikesRender.d.ts +7 -0
- package/dist/src/classes/callbacks/PostSpikesRender.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PostSpikesRender.lua +24 -0
- package/dist/src/classes/callbacks/PreBerserkDeath.d.ts +7 -0
- package/dist/src/classes/callbacks/PreBerserkDeath.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PreBerserkDeath.lua +36 -0
- package/dist/src/classes/callbacks/PreCustomRevive.d.ts +6 -0
- package/dist/src/classes/callbacks/PreCustomRevive.d.ts.map +1 -0
- package/dist/src/classes/callbacks/PreCustomRevive.lua +17 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackAmbush.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackBomb.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackBomb.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackCollectible.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackDoor.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackDoor.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackDoor.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackEffect.d.ts +11 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackEffect.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackEffect.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.d.ts +11 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackFamiliar.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.d.ts +11 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntity.lua +24 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackKnife.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackKnife.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPit.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPit.lua +20 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackPlayer.lua +23 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts +11 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRevive.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackRevive.lua +19 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts +10 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.d.ts.map +1 -0
- package/dist/src/classes/callbacks/validation/CustomCallbackSpikes.lua +20 -0
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts +134 -0
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/CustomGridEntities.lua +220 -0
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts +39 -0
- package/dist/src/classes/features/callbackLogic/CustomRevive.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/CustomRevive.lua +140 -0
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts +19 -0
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/EsauJrDetection.lua +52 -0
- package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts +16 -0
- package/dist/src/classes/features/callbackLogic/FlipDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/FlipDetection.lua +58 -0
- package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts +27 -0
- package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/GameReorderedCallbacks.lua +108 -0
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts +19 -0
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/GridEntityCollisionDetection.lua +69 -0
- package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts +46 -0
- package/dist/src/classes/features/callbackLogic/GridEntityDetection.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/GridEntityDetection.lua +126 -0
- package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts +24 -0
- package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.d.ts.map +1 -0
- package/dist/src/classes/features/callbackLogic/PlayerReorderedCallbacks.lua +72 -0
- package/dist/src/classes/features/other/RunInNFrames.d.ts +123 -0
- package/dist/src/classes/features/other/RunInNFrames.d.ts.map +1 -0
- package/dist/src/classes/features/other/RunInNFrames.lua +109 -0
- package/dist/src/classes/private/CustomCallback.d.ts +26 -0
- package/dist/src/classes/private/CustomCallback.d.ts.map +1 -0
- package/dist/src/classes/private/CustomCallback.lua +63 -0
- package/dist/src/classes/private/Feature.d.ts +19 -0
- package/dist/src/classes/private/Feature.d.ts.map +1 -0
- package/dist/src/classes/private/Feature.lua +16 -0
- package/dist/src/core/upgradeMod.d.ts +18 -1
- package/dist/src/core/upgradeMod.d.ts.map +1 -1
- package/dist/src/core/upgradeMod.lua +44 -9
- package/dist/src/decorators.d.ts +9 -0
- package/dist/src/decorators.d.ts.map +1 -0
- package/dist/src/decorators.lua +12 -0
- package/dist/src/enums/ISCFeature.d.ts +12 -0
- package/dist/src/enums/ISCFeature.d.ts.map +1 -0
- package/dist/src/enums/ISCFeature.lua +12 -0
- package/dist/src/enums/LadderSubTypeCustom.d.ts +17 -0
- package/dist/src/enums/LadderSubTypeCustom.d.ts.map +1 -0
- package/dist/src/enums/LadderSubTypeCustom.lua +19 -0
- package/dist/src/enums/ModCallbackCustom.d.ts +399 -327
- package/dist/src/enums/ModCallbackCustom.d.ts.map +1 -1
- package/dist/src/enums/ModCallbackCustom.lua +85 -87
- package/dist/src/enums/ModCallbackCustom2.d.ts +53 -0
- package/dist/src/enums/ModCallbackCustom2.d.ts.map +1 -0
- package/dist/src/enums/ModCallbackCustom2.lua +102 -0
- package/dist/src/features/customGridEntity.d.ts.map +1 -1
- package/dist/src/features/customGridEntity.lua +6 -8
- package/dist/src/features/{setHotkey.d.ts → customHotkeys.d.ts} +1 -1
- package/dist/src/features/customHotkeys.d.ts.map +1 -0
- package/dist/src/features/{setHotkey.lua → customHotkeys.lua} +2 -2
- package/dist/src/features/customPickup.d.ts.map +1 -1
- package/dist/src/features/customPickup.lua +6 -2
- package/dist/src/features/customStage/backdrop.d.ts.map +1 -1
- package/dist/src/features/customStage/backdrop.lua +3 -1
- package/dist/src/features/customStage/shadows.d.ts.map +1 -1
- package/dist/src/features/customStage/shadows.lua +3 -1
- package/dist/src/features/customTrapdoor/init.lua +1 -7
- package/dist/src/features/customTrapdoor/touched.lua +1 -1
- package/dist/src/features/deployJSONRoom.d.ts.map +1 -1
- package/dist/src/features/deployJSONRoom.lua +6 -8
- package/dist/src/features/firstLast.d.ts.map +1 -1
- package/dist/src/features/firstLast.lua +3 -3
- package/dist/src/features/saveDataManager/constants.d.ts +1 -1
- package/dist/src/features/saveDataManager/constants.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/exports.d.ts +5 -0
- package/dist/src/features/saveDataManager/exports.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/exports.lua +16 -0
- package/dist/src/features/saveDataManager/main.d.ts +8 -2
- package/dist/src/features/saveDataManager/main.d.ts.map +1 -1
- package/dist/src/features/saveDataManager/main.lua +3 -5
- package/dist/src/features/saveDataManager/save.lua +2 -3
- package/dist/src/features.d.ts +34 -0
- package/dist/src/features.d.ts.map +1 -0
- package/dist/src/features.lua +68 -0
- package/dist/src/functions/ambush.d.ts +6 -0
- package/dist/src/functions/ambush.d.ts.map +1 -1
- package/dist/src/functions/ambush.lua +31 -0
- package/dist/src/functions/characters.lua +3 -3
- package/dist/src/functions/charge.d.ts +30 -8
- package/dist/src/functions/charge.d.ts.map +1 -1
- package/dist/src/functions/charge.lua +38 -2
- package/dist/src/functions/chargeBar.d.ts +6 -0
- package/dist/src/functions/chargeBar.d.ts.map +1 -1
- package/dist/src/functions/chargeBar.lua +6 -0
- package/dist/src/functions/decorators.d.ts +19 -0
- package/dist/src/functions/decorators.d.ts.map +1 -0
- package/dist/src/functions/decorators.lua +32 -0
- package/dist/src/functions/flying.lua +4 -4
- package/dist/src/functions/gridEntities.lua +5 -5
- package/dist/src/functions/gridEntitiesSpecific.lua +12 -12
- package/dist/src/functions/itemPool.lua +2 -2
- package/dist/src/functions/minimap.d.ts +4 -0
- package/dist/src/functions/minimap.d.ts.map +1 -1
- package/dist/src/functions/minimap.lua +4 -0
- package/dist/src/functions/playerHealth.lua +6 -6
- package/dist/src/functions/playerIndex.lua +2 -2
- package/dist/src/functions/players.d.ts +14 -3
- package/dist/src/functions/players.d.ts.map +1 -1
- package/dist/src/functions/players.lua +35 -16
- package/dist/src/functions/pocketItems.lua +1 -1
- package/dist/src/functions/roomTransition.d.ts +3 -4
- package/dist/src/functions/roomTransition.d.ts.map +1 -1
- package/dist/src/functions/roomTransition.lua +4 -32
- package/dist/src/functions/rooms.d.ts +1 -1
- package/dist/src/functions/rooms.d.ts.map +1 -1
- package/dist/src/functions/rooms.lua +1 -1
- package/dist/src/functions/run.d.ts +5 -0
- package/dist/src/functions/run.d.ts.map +1 -1
- package/dist/src/functions/run.lua +6 -0
- package/dist/src/functions/spawnCollectible.d.ts +24 -5
- package/dist/src/functions/spawnCollectible.d.ts.map +1 -1
- package/dist/src/functions/spawnCollectible.lua +44 -4
- package/dist/src/functions/table.d.ts +2 -0
- package/dist/src/functions/table.d.ts.map +1 -1
- package/dist/src/functions/table.lua +7 -0
- package/dist/src/functions/trinkets.lua +1 -1
- package/dist/src/functions/tstlClass.d.ts +21 -9
- package/dist/src/functions/tstlClass.d.ts.map +1 -1
- package/dist/src/functions/tstlClass.lua +49 -24
- package/dist/src/functions/utils.d.ts +44 -2
- package/dist/src/functions/utils.d.ts.map +1 -1
- package/dist/src/functions/utils.lua +43 -2
- package/dist/src/index.d.ts +15 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.lua +42 -10
- package/dist/src/initCustomCallbacks.d.ts.map +1 -1
- package/dist/src/initCustomCallbacks.lua +0 -3
- package/dist/src/initFeatures.lua +3 -3
- package/dist/src/interfaces/SaveData.d.ts.map +1 -1
- package/dist/src/interfaces/{private/TSTLClassMetatable.d.ts → TSTLClassMetatable.d.ts} +0 -0
- package/dist/src/interfaces/TSTLClassMetatable.d.ts.map +1 -0
- package/dist/src/interfaces/{private/TSTLClassMetatable.lua → TSTLClassMetatable.lua} +0 -0
- package/dist/src/interfaces/private/{AddCallbackParameterCustom.d.ts → AddCallbackParametersCustom.d.ts} +3 -5
- package/dist/src/interfaces/private/AddCallbackParametersCustom.d.ts.map +1 -0
- package/dist/src/interfaces/private/{AddCallbackParameterCustom.lua → AddCallbackParametersCustom.lua} +3 -0
- package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts +201 -0
- package/dist/src/interfaces/private/AddCallbackParametersCustom2.d.ts.map +1 -0
- package/dist/src/interfaces/private/AddCallbackParametersCustom2.lua +7 -0
- package/dist/src/maps/characterNameToTypeMap.lua +12 -12
- package/dist/src/objects/callbackRegisterFunctions.d.ts +1 -1
- package/dist/src/objects/callbackRegisterFunctions.d.ts.map +1 -1
- package/dist/src/objects/callbackRegisterFunctions.lua +2 -5
- package/dist/src/objects/characterDamageMultipliers.lua +6 -6
- package/dist/src/objects/characterNames.lua +6 -6
- package/dist/src/objects/playerNamePNGFileNames.lua +6 -6
- package/dist/src/objects/playerPortraitPNGFileNames.lua +6 -6
- package/dist/src/sets/charactersThatStartWithAnActiveItemSet.lua +1 -1
- package/dist/src/sets/charactersWithFreeDevilDealsSet.d.ts.map +1 -1
- package/dist/src/sets/charactersWithFreeDevilDealsSet.lua +1 -1
- package/dist/src/sets/charactersWithNoRedHeartsSet.lua +3 -3
- package/dist/src/sets/charactersWithNoSoulHeartsSet.lua +2 -2
- package/dist/src/sets/lostStyleCharactersSet.lua +4 -4
- package/dist/src/types/AllButFirst.d.ts +5 -0
- package/dist/src/types/AllButFirst.d.ts.map +1 -0
- package/dist/src/types/AllButFirst.lua +2 -0
- package/dist/src/types/AllButLast.d.ts +2 -0
- package/dist/src/types/AllButLast.d.ts.map +1 -0
- package/dist/src/types/AllButLast.lua +2 -0
- package/dist/src/types/Constructor.d.ts +2 -0
- package/dist/src/types/Constructor.d.ts.map +1 -0
- package/dist/src/types/Constructor.lua +2 -0
- package/dist/src/types/FunctionTuple.d.ts +5 -0
- package/dist/src/types/FunctionTuple.d.ts.map +1 -0
- package/dist/src/types/FunctionTuple.lua +2 -0
- package/dist/src/types/HasAllEnumKeys.d.ts +26 -0
- package/dist/src/types/HasAllEnumKeys.d.ts.map +1 -0
- package/dist/src/types/HasAllEnumKeys.lua +2 -0
- package/dist/src/types/LowercaseKeys.d.ts +3 -0
- package/dist/src/types/LowercaseKeys.d.ts.map +1 -0
- package/dist/src/types/LowercaseKeys.lua +2 -0
- package/dist/src/types/StartsWithLowercase.d.ts +2 -0
- package/dist/src/types/StartsWithLowercase.d.ts.map +1 -0
- package/dist/src/types/StartsWithLowercase.lua +2 -0
- package/dist/src/types/StartsWithUppercase.d.ts +2 -0
- package/dist/src/types/StartsWithUppercase.d.ts.map +1 -0
- package/dist/src/types/StartsWithUppercase.lua +2 -0
- package/dist/src/types/UnionToIntersection.d.ts +3 -0
- package/dist/src/types/UnionToIntersection.d.ts.map +1 -0
- package/dist/src/types/UnionToIntersection.lua +2 -0
- package/dist/src/types/UppercaseKeys.d.ts +3 -0
- package/dist/src/types/UppercaseKeys.d.ts.map +1 -0
- package/dist/src/types/UppercaseKeys.lua +2 -0
- package/dist/src/types/private/AllButFirst.d.ts +5 -0
- package/dist/src/types/private/AllButFirst.d.ts.map +1 -0
- package/dist/src/types/private/AllButFirst.lua +2 -0
- package/dist/src/types/private/CallbackTuple.d.ts +20 -0
- package/dist/src/types/private/CallbackTuple.d.ts.map +1 -0
- package/dist/src/types/private/CallbackTuple.lua +2 -0
- package/dist/src/types/private/MatchingCallbackCustom.d.ts +16 -0
- package/dist/src/types/private/MatchingCallbackCustom.d.ts.map +1 -0
- package/dist/src/types/private/MatchingCallbackCustom.lua +2 -0
- package/package.json +2 -2
- package/src/callbacks/customRevive.ts +13 -1
- package/src/callbacks/postAmbush.ts +7 -14
- package/src/callbacks/postBombExploded.ts +1 -1
- package/src/callbacks/postBoneSwing.ts +2 -1
- package/src/callbacks/postCollectibleEmpty.ts +2 -0
- package/src/callbacks/postCollectibleInitFirst.ts +2 -0
- package/src/callbacks/postDoorRender.ts +2 -2
- package/src/callbacks/postEffectStateChanged.ts +3 -6
- package/src/callbacks/postFamiliarStateChanged.ts +3 -3
- package/src/callbacks/postFlip.ts +2 -2
- package/src/callbacks/postGridEntity.ts +3 -7
- package/src/callbacks/postNPCStateChanged.ts +3 -3
- package/src/callbacks/postNewRoomEarly.ts +1 -1
- package/src/callbacks/postPickupStateChanged.ts +3 -6
- package/src/callbacks/postPlayerCollectible.ts +8 -12
- package/src/callbacks/postRoomClearChanged.ts +3 -7
- package/src/callbacks/reorderedCallbacks.ts +6 -6
- package/src/callbacks/subscriptions/{postBoneExploded.ts → postBombExploded.ts} +0 -0
- package/src/callbacks/subscriptions/postCollectibleEmpty.ts +1 -1
- package/src/callbacks/subscriptions/postCollectibleInitFirst.ts +1 -1
- package/src/callbacks/subscriptions/postCursedTeleport.ts +24 -1
- package/src/callbacks/subscriptions/postGridEntityBroken.ts +4 -7
- package/src/callbacks/subscriptions/postGridEntityCollision.ts +4 -4
- package/src/callbacks/subscriptions/postGridEntityInit.ts +4 -7
- package/src/callbacks/subscriptions/postGridEntityRemove.ts +10 -9
- package/src/callbacks/subscriptions/postGridEntityRender.ts +4 -7
- package/src/callbacks/subscriptions/postGridEntityStateChanged.ts +4 -7
- package/src/callbacks/subscriptions/postGridEntityUpdate.ts +4 -7
- package/src/callbacks/subscriptions/postHolyMantleRemoved.ts +9 -2
- package/src/callbacks/subscriptions/postPEffectUpdateReordered.ts +9 -2
- package/src/callbacks/subscriptions/postRockRender.ts +6 -7
- package/src/callbacks/subscriptions/postRockUpdate.ts +6 -7
- package/src/callbacks/subscriptions/postSpikesRender.ts +4 -7
- package/src/callbacks/subscriptions/postSpikesUpdate.ts +4 -7
- package/src/callbacks/subscriptions/postTNTRender.ts +4 -7
- package/src/callbacks/subscriptions/postTNTUpdate.ts +4 -7
- package/src/callbacks.ts +134 -0
- package/src/classes/DefaultMap.ts +3 -3
- package/src/classes/ModFeature.ts +14 -0
- package/src/classes/ModUpgraded.ts +205 -45
- package/src/classes/callbacks/PostAmbushFinished.ts +39 -0
- package/src/classes/callbacks/PostAmbushStarted.ts +39 -0
- package/src/classes/callbacks/PostBombExploded.ts +21 -0
- package/src/classes/callbacks/PostBombInitLate.ts +28 -0
- package/src/classes/callbacks/PostBoneSwing.ts +61 -0
- package/src/classes/callbacks/PostCollectibleEmpty.ts +72 -0
- package/src/classes/callbacks/PostCollectibleInitFirst.ts +37 -0
- package/src/classes/callbacks/PostCursedTeleport.ts +186 -0
- package/src/classes/callbacks/PostCustomRevive.ts +11 -0
- package/src/classes/callbacks/PostDiceRoomActivated.ts +68 -0
- package/src/classes/callbacks/PostDoorRender.ts +19 -0
- package/src/classes/callbacks/PostDoorUpdate.ts +19 -0
- package/src/classes/callbacks/PostEffectInitLate.ts +28 -0
- package/src/classes/callbacks/PostEffectStateChanged.ts +35 -0
- package/src/classes/callbacks/PostEsauJr.ts +11 -0
- package/src/classes/callbacks/PostFamiliarInitLate.ts +28 -0
- package/src/classes/callbacks/PostFamiliarStateChanged.ts +35 -0
- package/src/classes/callbacks/PostFirstEsauJr.ts +11 -0
- package/src/classes/callbacks/PostFirstFlip.ts +11 -0
- package/src/classes/callbacks/PostFlip.ts +11 -0
- package/src/classes/callbacks/PostGameStartedReordered.ts +11 -0
- package/src/classes/callbacks/PostGameStartedReorderedLast.ts +11 -0
- package/src/classes/callbacks/PostGreedModeWave.ts +37 -0
- package/src/classes/callbacks/PostGridEntityBroken.ts +11 -0
- package/src/classes/callbacks/PostGridEntityCollision.ts +65 -0
- package/src/classes/callbacks/PostGridEntityCustomBroken.ts +11 -0
- package/src/classes/callbacks/PostGridEntityCustomCollision.ts +53 -0
- package/src/classes/callbacks/PostGridEntityCustomInit.ts +11 -0
- package/src/classes/callbacks/PostGridEntityCustomRemove.ts +32 -0
- package/src/classes/callbacks/PostGridEntityCustomStateChanged.ts +11 -0
- package/src/classes/callbacks/PostGridEntityCustomUpdate.ts +11 -0
- package/src/classes/callbacks/PostGridEntityInit.ts +11 -0
- package/src/classes/callbacks/PostGridEntityRemove.ts +39 -0
- package/src/classes/callbacks/PostGridEntityStateChanged.ts +11 -0
- package/src/classes/callbacks/PostGridEntityUpdate.ts +11 -0
- package/src/classes/callbacks/PostHolyMantleRemoved.ts +45 -0
- package/src/classes/callbacks/PostKnifeInitLate.ts +28 -0
- package/src/classes/callbacks/PostNewLevelReordered.ts +11 -0
- package/src/classes/callbacks/PostNewRoomEarly.ts +93 -0
- package/src/classes/callbacks/PostNewRoomReordered.ts +11 -0
- package/src/classes/callbacks/PostPEffectUpdateReordered.ts +11 -0
- package/src/classes/callbacks/PostPitRender.ts +21 -0
- package/src/classes/callbacks/PostPlayerFatalDamage.ts +127 -0
- package/src/classes/callbacks/PostPlayerRenderReordered.ts +11 -0
- package/src/classes/callbacks/PostPlayerUpdateReordered.ts +11 -0
- package/src/classes/callbacks/PostRoomClearChanged.ts +40 -0
- package/src/classes/callbacks/PostSpikesRender.ts +21 -0
- package/src/classes/callbacks/PreBerserkDeath.ts +42 -0
- package/src/classes/callbacks/PreCustomRevive.ts +11 -0
- package/src/classes/callbacks/validation/CustomCallbackAmbush.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackBomb.ts +27 -0
- package/src/classes/callbacks/validation/CustomCallbackCollectible.ts +30 -0
- package/src/classes/callbacks/validation/CustomCallbackDoor.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackEffect.ts +29 -0
- package/src/classes/callbacks/validation/CustomCallbackFamiliar.ts +30 -0
- package/src/classes/callbacks/validation/CustomCallbackGridEntity.ts +42 -0
- package/src/classes/callbacks/validation/CustomCallbackGridEntityCustom.ts +36 -0
- package/src/classes/callbacks/validation/CustomCallbackKnife.ts +27 -0
- package/src/classes/callbacks/validation/CustomCallbackPit.ts +28 -0
- package/src/classes/callbacks/validation/CustomCallbackPlayer.ts +47 -0
- package/src/classes/callbacks/validation/CustomCallbackRevive.ts +27 -0
- package/src/classes/callbacks/validation/CustomCallbackSpikes.ts +28 -0
- package/src/classes/features/callbackLogic/CustomGridEntities.ts +398 -0
- package/src/classes/features/callbackLogic/CustomRevive.ts +214 -0
- package/src/classes/features/callbackLogic/EsauJrDetection.ts +98 -0
- package/src/classes/features/callbackLogic/FlipDetection.ts +82 -0
- package/src/classes/features/callbackLogic/GameReorderedCallbacks.ts +160 -0
- package/src/classes/features/callbackLogic/GridEntityCollisionDetection.ts +90 -0
- package/src/classes/features/callbackLogic/GridEntityDetection.ts +231 -0
- package/src/classes/features/callbackLogic/PlayerReorderedCallbacks.ts +126 -0
- package/src/classes/features/other/RunInNFrames.ts +256 -0
- package/src/classes/private/CustomCallback.ts +82 -0
- package/src/classes/private/Feature.ts +24 -0
- package/src/core/upgradeMod.ts +77 -17
- package/src/decorators.ts +13 -0
- package/src/enums/ISCFeature.ts +47 -0
- package/src/enums/LadderSubTypeCustom.ts +17 -0
- package/src/enums/ModCallbackCustom.ts +314 -243
- package/src/enums/ModCallbackCustom2.ts +57 -0
- package/src/features/customGridEntity.ts +3 -7
- package/src/features/{setHotkey.ts → customHotkeys.ts} +2 -2
- package/src/features/customPickup.ts +4 -2
- package/src/features/customStage/backdrop.ts +2 -1
- package/src/features/customStage/shadows.ts +2 -1
- package/src/features/customTrapdoor/init.ts +0 -1
- package/src/features/customTrapdoor/touched.ts +1 -1
- package/src/features/deployJSONRoom.ts +3 -7
- package/src/features/extraConsoleCommands/listCommands.ts +1 -1
- package/src/features/firstLast.ts +3 -7
- package/src/features/saveDataManager/constants.ts +1 -1
- package/src/features/saveDataManager/exports.ts +27 -0
- package/src/features/saveDataManager/main.ts +30 -21
- package/src/features/saveDataManager/save.ts +2 -2
- package/src/features.ts +90 -0
- package/src/functions/ambush.ts +26 -1
- package/src/functions/characters.ts +3 -3
- package/src/functions/charge.ts +30 -8
- package/src/functions/chargeBar.ts +6 -0
- package/src/functions/decorators.ts +45 -0
- package/src/functions/flying.ts +4 -4
- package/src/functions/gridEntities.ts +5 -5
- package/src/functions/gridEntitiesSpecific.ts +12 -12
- package/src/functions/itemPool.ts +2 -2
- package/src/functions/minimap.ts +4 -0
- package/src/functions/playerHealth.ts +6 -6
- package/src/functions/playerIndex.ts +2 -2
- package/src/functions/players.ts +26 -7
- package/src/functions/pocketItems.ts +1 -1
- package/src/functions/roomTransition.ts +3 -27
- package/src/functions/rooms.ts +1 -1
- package/src/functions/run.ts +12 -0
- package/src/functions/spawnCollectible.ts +44 -4
- package/src/functions/table.ts +11 -0
- package/src/functions/trinkets.ts +1 -1
- package/src/functions/tstlClass.ts +48 -24
- package/src/functions/utils.ts +56 -2
- package/src/index.ts +15 -2
- package/src/initCustomCallbacks.ts +1 -2
- package/src/initFeatures.ts +2 -2
- package/src/interfaces/SaveData.ts +4 -2
- package/src/interfaces/{private/TSTLClassMetatable.ts → TSTLClassMetatable.ts} +0 -0
- package/src/interfaces/private/{AddCallbackParameterCustom.ts → AddCallbackParametersCustom.ts} +4 -23
- package/src/interfaces/private/AddCallbackParametersCustom2.ts +343 -0
- package/src/maps/characterNameToTypeMap.ts +12 -12
- package/src/objects/callbackRegisterFunctions.ts +2 -4
- package/src/objects/characterDamageMultipliers.ts +6 -6
- package/src/objects/characterNames.ts +6 -6
- package/src/objects/playerNamePNGFileNames.ts +6 -6
- package/src/objects/playerPortraitPNGFileNames.ts +6 -6
- package/src/sets/charactersThatStartWithAnActiveItemSet.ts +1 -1
- package/src/sets/charactersWithFreeDevilDealsSet.ts +1 -1
- package/src/sets/charactersWithNoRedHeartsSet.ts +3 -3
- package/src/sets/charactersWithNoSoulHeartsSet.ts +2 -2
- package/src/sets/lostStyleCharactersSet.ts +4 -4
- package/src/types/AllButFirst.ts +6 -0
- package/src/types/AllButLast.ts +3 -0
- package/src/types/Constructor.ts +2 -0
- package/src/types/FunctionTuple.ts +4 -0
- package/src/types/HasAllEnumKeys.ts +25 -0
- package/src/types/LowercaseKeys.ts +3 -0
- package/src/types/StartsWithLowercase.ts +3 -0
- package/src/types/StartsWithUppercase.ts +3 -0
- package/src/types/UnionToIntersection.ts +6 -0
- package/src/types/UppercaseKeys.ts +3 -0
- package/src/types/private/AllButFirst.ts +6 -0
- package/src/types/private/CallbackTuple.ts +21 -0
- package/src/types/private/MatchingCallbackCustom.ts +32 -0
- package/dist/src/callbacks/postCustomDoorEnter.d.ts +0 -6
- package/dist/src/callbacks/postCustomDoorEnter.d.ts.map +0 -1
- package/dist/src/callbacks/postCustomDoorEnter.lua +0 -199
- package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts +0 -9
- package/dist/src/callbacks/subscriptions/postCustomDoorEnter.d.ts.map +0 -1
- package/dist/src/callbacks/subscriptions/postCustomDoorEnter.lua +0 -29
- package/dist/src/classes/CustomCallback.d.ts +0 -8
- package/dist/src/classes/CustomCallback.d.ts.map +0 -1
- package/dist/src/classes/CustomCallback.lua +0 -28
- package/dist/src/features/customDoor.d.ts +0 -51
- package/dist/src/features/customDoor.d.ts.map +0 -1
- package/dist/src/features/customDoor.lua +0 -53
- package/dist/src/features/setHotkey.d.ts.map +0 -1
- package/dist/src/interfaces/private/AddCallbackParameterCustom.d.ts.map +0 -1
- package/dist/src/interfaces/private/TSTLClassMetatable.d.ts.map +0 -1
- package/src/callbacks/postCustomDoorEnter.ts +0 -250
- package/src/callbacks/subscriptions/postCustomDoorEnter.ts +0 -42
- package/src/classes/CustomCallback.ts +0 -23
- package/src/features/customDoor.ts +0 -66
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/** TODO */
|
|
2
|
+
export enum ModCallbackCustom2 {
|
|
3
|
+
POST_AMBUSH_FINISHED,
|
|
4
|
+
POST_AMBUSH_STARTED,
|
|
5
|
+
POST_BOMB_EXPLODED,
|
|
6
|
+
POST_BOMB_INIT_LATE,
|
|
7
|
+
POST_BONE_SWING,
|
|
8
|
+
POST_COLLECTIBLE_EMPTY,
|
|
9
|
+
POST_COLLECTIBLE_INIT_FIRST,
|
|
10
|
+
POST_CURSED_TELEPORT,
|
|
11
|
+
POST_CUSTOM_REVIVE,
|
|
12
|
+
POST_DICE_ROOM_ACTIVATED,
|
|
13
|
+
POST_DOOR_RENDER,
|
|
14
|
+
POST_DOOR_UPDATE,
|
|
15
|
+
POST_EFFECT_INIT_LATE,
|
|
16
|
+
POST_EFFECT_STATE_CHANGED,
|
|
17
|
+
POST_ESAU_JR,
|
|
18
|
+
POST_FAMILIAR_INIT_LATE,
|
|
19
|
+
POST_FAMILIAR_STATE_CHANGED,
|
|
20
|
+
POST_FIRST_ESAU_JR,
|
|
21
|
+
POST_FIRST_FLIP,
|
|
22
|
+
POST_FLIP,
|
|
23
|
+
POST_GAME_STARTED_REORDERED,
|
|
24
|
+
POST_GAME_STARTED_REORDERED_LAST,
|
|
25
|
+
POST_GREED_MODE_WAVE,
|
|
26
|
+
POST_GRID_ENTITY_BROKEN,
|
|
27
|
+
POST_GRID_ENTITY_COLLISION,
|
|
28
|
+
POST_GRID_ENTITY_CUSTOM_BROKEN,
|
|
29
|
+
POST_GRID_ENTITY_CUSTOM_COLLISION,
|
|
30
|
+
POST_GRID_ENTITY_CUSTOM_INIT,
|
|
31
|
+
POST_GRID_ENTITY_CUSTOM_REMOVE,
|
|
32
|
+
// POST_GRID_ENTITY_CUSTOM_RENDER,
|
|
33
|
+
POST_GRID_ENTITY_CUSTOM_STATE_CHANGED,
|
|
34
|
+
POST_GRID_ENTITY_CUSTOM_UPDATE,
|
|
35
|
+
POST_GRID_ENTITY_INIT,
|
|
36
|
+
POST_GRID_ENTITY_REMOVE,
|
|
37
|
+
// POST_GRID_ENTITY_RENDER,
|
|
38
|
+
POST_GRID_ENTITY_STATE_CHANGED,
|
|
39
|
+
POST_GRID_ENTITY_UPDATE,
|
|
40
|
+
POST_HOLY_MANTLE_REMOVED,
|
|
41
|
+
|
|
42
|
+
// ---------------------
|
|
43
|
+
|
|
44
|
+
POST_KNIFE_INIT_LATE,
|
|
45
|
+
POST_NEW_LEVEL_REORDERED,
|
|
46
|
+
POST_NEW_ROOM_EARLY,
|
|
47
|
+
POST_NEW_ROOM_REORDERED,
|
|
48
|
+
POST_PEFFECT_UPDATE_REORDERED,
|
|
49
|
+
POST_PIT_RENDER,
|
|
50
|
+
POST_PLAYER_FATAL_DAMAGE,
|
|
51
|
+
POST_PLAYER_RENDER_REORDERED,
|
|
52
|
+
POST_PLAYER_UPDATE_REORDERED,
|
|
53
|
+
POST_ROOM_CLEAR_CHANGED,
|
|
54
|
+
POST_SPIKES_RENDER,
|
|
55
|
+
PRE_BERSERK_DEATH,
|
|
56
|
+
PRE_CUSTOM_REVIVE,
|
|
57
|
+
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
removeGridEntity,
|
|
19
19
|
spawnGridEntityWithVariant,
|
|
20
20
|
} from "../functions/gridEntities";
|
|
21
|
+
import { getPlayerFromPtr } from "../functions/players";
|
|
21
22
|
import { getRoomListIndex } from "../functions/roomData";
|
|
22
23
|
import { isNumber } from "../functions/types";
|
|
23
24
|
import { isVector } from "../functions/vector";
|
|
@@ -91,14 +92,9 @@ function preUseItemWeNeedToGoDeeper(
|
|
|
91
92
|
|
|
92
93
|
removeGridEntity(customGridEntity.gridIndex, false);
|
|
93
94
|
|
|
94
|
-
const
|
|
95
|
+
const entityPtr = EntityPtr(player);
|
|
95
96
|
runNextGameFrame(() => {
|
|
96
|
-
const
|
|
97
|
-
if (futureEntity === undefined) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const futurePlayer = futureEntity.ToPlayer();
|
|
97
|
+
const futurePlayer = getPlayerFromPtr(entityPtr);
|
|
102
98
|
if (futurePlayer === undefined) {
|
|
103
99
|
return;
|
|
104
100
|
}
|
|
@@ -3,7 +3,7 @@ import { DefaultMap } from "../classes/DefaultMap";
|
|
|
3
3
|
import { errorIfFeaturesNotInitialized } from "../featuresInitialized";
|
|
4
4
|
import { isKeyboardPressed } from "../functions/input";
|
|
5
5
|
|
|
6
|
-
const FEATURE_NAME = "
|
|
6
|
+
const FEATURE_NAME = "customHotkeys";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* The keys are the keyboard keys that trigger the hotkey. The values are the functions that contain
|
|
@@ -23,7 +23,7 @@ const dynamicHotkeyFunctionMap = new Map<
|
|
|
23
23
|
const keyPressedMap = new DefaultMap<Keyboard, boolean>(false);
|
|
24
24
|
|
|
25
25
|
/** @internal */
|
|
26
|
-
export function
|
|
26
|
+
export function customHotkeysInit(mod: Mod): void {
|
|
27
27
|
mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -4,12 +4,14 @@ import {
|
|
|
4
4
|
ModCallback,
|
|
5
5
|
PickupVariant,
|
|
6
6
|
} from "isaac-typescript-definitions";
|
|
7
|
+
import { LadderSubTypeCustom } from "../enums/LadderSubTypeCustom";
|
|
7
8
|
import { errorIfFeaturesNotInitialized } from "../featuresInitialized";
|
|
8
9
|
import {
|
|
9
10
|
getEntityID,
|
|
10
11
|
getEntityIDFromConstituents,
|
|
11
12
|
} from "../functions/entities";
|
|
12
13
|
import { spawnEffect } from "../functions/entitiesSpecific";
|
|
14
|
+
import { asNumber } from "../functions/types";
|
|
13
15
|
|
|
14
16
|
const FEATURE_NAME = "customPickup";
|
|
15
17
|
|
|
@@ -27,7 +29,7 @@ interface CustomPickupFunctions {
|
|
|
27
29
|
* time passes, like most other effects.
|
|
28
30
|
*/
|
|
29
31
|
const PICKUP_EFFECT_VARIANT = EffectVariant.LADDER;
|
|
30
|
-
const PICKUP_EFFECT_SUB_TYPE =
|
|
32
|
+
const PICKUP_EFFECT_SUB_TYPE = LadderSubTypeCustom.CUSTOM_PICKUP;
|
|
31
33
|
|
|
32
34
|
/** Indexed by entity ID. */
|
|
33
35
|
const customPickupFunctionsMap = new Map<string, CustomPickupFunctions>();
|
|
@@ -85,7 +87,7 @@ function prePickupCollision(
|
|
|
85
87
|
// ModCallback.POST_EFFECT_RENDER (56)
|
|
86
88
|
// PICKUP_EFFECT_VARIANT
|
|
87
89
|
function postEffectRenderPickupEffect(effect: EntityEffect) {
|
|
88
|
-
if (effect.SubType !== PICKUP_EFFECT_SUB_TYPE) {
|
|
90
|
+
if (effect.SubType !== asNumber(PICKUP_EFFECT_SUB_TYPE)) {
|
|
89
91
|
return;
|
|
90
92
|
}
|
|
91
93
|
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
} from "isaac-typescript-definitions";
|
|
11
11
|
import { game } from "../../core/cachedClasses";
|
|
12
12
|
import { VectorZero } from "../../core/constants";
|
|
13
|
+
import { LadderSubTypeCustom } from "../../enums/LadderSubTypeCustom";
|
|
13
14
|
import { getRandomArrayElement } from "../../functions/array";
|
|
14
15
|
import { spawnEffectWithSeed } from "../../functions/entitiesSpecific";
|
|
15
16
|
import { newRNG } from "../../functions/rng";
|
|
@@ -83,7 +84,7 @@ const N_FLOOR_ANM2_LAYERS: readonly int[] = [18, 19];
|
|
|
83
84
|
* time passes, like most other effects.
|
|
84
85
|
*/
|
|
85
86
|
const BACKDROP_EFFECT_VARIANT = EffectVariant.LADDER;
|
|
86
|
-
const BACKDROP_EFFECT_SUB_TYPE =
|
|
87
|
+
const BACKDROP_EFFECT_SUB_TYPE = LadderSubTypeCustom.CUSTOM_BACKDROP;
|
|
87
88
|
|
|
88
89
|
const BACKDROP_ROOM_TYPE_SET: ReadonlySet<RoomType> = new Set([
|
|
89
90
|
RoomType.DEFAULT,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EffectVariant, RoomShape } from "isaac-typescript-definitions";
|
|
2
2
|
import { game } from "../../core/cachedClasses";
|
|
3
|
+
import { LadderSubTypeCustom } from "../../enums/LadderSubTypeCustom";
|
|
3
4
|
import { getRandomArrayElement } from "../../functions/array";
|
|
4
5
|
import { spawnEffectWithSeed } from "../../functions/entitiesSpecific";
|
|
5
6
|
import { removeCharactersBefore } from "../../functions/string";
|
|
@@ -18,7 +19,7 @@ type ShadowAnimation = "1x1" | "1x2" | "2x1" | "2x2";
|
|
|
18
19
|
* time passes, like most other effects.
|
|
19
20
|
*/
|
|
20
21
|
const SHADOW_EFFECT_VARIANT = EffectVariant.LADDER;
|
|
21
|
-
const SHADOW_EFFECT_SUB_TYPE =
|
|
22
|
+
const SHADOW_EFFECT_SUB_TYPE = LadderSubTypeCustom.CUSTOM_SHADOW;
|
|
22
23
|
|
|
23
24
|
/** The animation comes from StageAPI. */
|
|
24
25
|
const ROOM_SHAPE_TO_SHADOW_ANIMATION: {
|
|
@@ -123,7 +123,7 @@ function setPlayerAttributes(trapdoorPlayer: EntityPlayer, position: Vector) {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
function dropTaintedForgotten(player: EntityPlayer) {
|
|
126
|
-
if (isCharacter(player, PlayerType.
|
|
126
|
+
if (isCharacter(player, PlayerType.FORGOTTEN_B)) {
|
|
127
127
|
const taintedSoul = player.GetOtherTwin();
|
|
128
128
|
if (taintedSoul !== undefined) {
|
|
129
129
|
taintedSoul.ThrowHeldEntity(VectorZero);
|
|
@@ -41,6 +41,7 @@ import {
|
|
|
41
41
|
} from "../functions/gridEntities";
|
|
42
42
|
import { getRandomJSONEntity, getRandomJSONRoom } from "../functions/jsonRoom";
|
|
43
43
|
import { log } from "../functions/log";
|
|
44
|
+
import { getPlayerFromPtr } from "../functions/players";
|
|
44
45
|
import { getRandomSeed, isRNG, newRNG } from "../functions/rng";
|
|
45
46
|
import { getRoomListIndex } from "../functions/roomData";
|
|
46
47
|
import { gridCoordinatesToWorldPosition } from "../functions/roomGrid";
|
|
@@ -134,14 +135,9 @@ function preUseItemWeNeedToGoDeeper(
|
|
|
134
135
|
removeGridEntity(decoration, false);
|
|
135
136
|
}
|
|
136
137
|
|
|
137
|
-
const
|
|
138
|
+
const entityPtr = EntityPtr(player);
|
|
138
139
|
runNextGameFrame(() => {
|
|
139
|
-
const
|
|
140
|
-
if (futureEntity === undefined) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const futurePlayer = futureEntity.ToPlayer();
|
|
140
|
+
const futurePlayer = getPlayerFromPtr(entityPtr);
|
|
145
141
|
if (futurePlayer === undefined) {
|
|
146
142
|
return;
|
|
147
143
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CardType,
|
|
3
3
|
CollectibleType,
|
|
4
|
+
ModCallback,
|
|
4
5
|
PillEffect,
|
|
5
6
|
TrinketType,
|
|
6
7
|
} from "isaac-typescript-definitions";
|
|
7
|
-
import { ModUpgraded } from "../classes/ModUpgraded";
|
|
8
8
|
import { itemConfig } from "../core/cachedClasses";
|
|
9
9
|
import {
|
|
10
10
|
FIRST_CARD_TYPE,
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
NUM_VANILLA_PILL_EFFECTS,
|
|
20
20
|
NUM_VANILLA_TRINKET_TYPES,
|
|
21
21
|
} from "../core/constantsFirstLast";
|
|
22
|
-
import { ModCallbackCustom } from "../enums/ModCallbackCustom";
|
|
23
22
|
import { errorIfFeaturesNotInitialized } from "../featuresInitialized";
|
|
24
23
|
import {
|
|
25
24
|
asCardType,
|
|
@@ -35,11 +34,8 @@ const FEATURE_NAME = "firstLast";
|
|
|
35
34
|
let atLeastOneCallbackFired = false;
|
|
36
35
|
|
|
37
36
|
/** @internal */
|
|
38
|
-
export function firstLastInit(mod:
|
|
39
|
-
mod.
|
|
40
|
-
ModCallbackCustom.POST_NEW_ROOM_EARLY,
|
|
41
|
-
postNewRoomEarly,
|
|
42
|
-
);
|
|
37
|
+
export function firstLastInit(mod: Mod): void {
|
|
38
|
+
mod.AddCallback(ModCallback.POST_NEW_ROOM, postNewRoomEarly);
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
// ModCallbackCustom.POST_NEW_ROOM_EARLY
|
|
@@ -12,7 +12,7 @@ export const SAVE_DATA_MANAGER_FEATURE_NAME = "save data manager";
|
|
|
12
12
|
export const SAVE_DATA_MANAGER_GLOWING_HOUR_GLASS_BACKUP_KEYS = [
|
|
13
13
|
SaveDataKey.RUN,
|
|
14
14
|
SaveDataKey.LEVEL,
|
|
15
|
-
];
|
|
15
|
+
] as const;
|
|
16
16
|
|
|
17
17
|
export const SAVE_DATA_MANAGER_GLOWING_HOUR_GLASS_IGNORE_KEY =
|
|
18
18
|
"__ignoreGlowingHourGlass";
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
saveDataConditionalFuncMap,
|
|
15
15
|
saveDataDefaultsMap,
|
|
16
|
+
saveDataGlowingHourGlassMap,
|
|
16
17
|
saveDataMap,
|
|
17
18
|
} from "./maps";
|
|
18
19
|
|
|
@@ -252,3 +253,29 @@ export function saveDataManagerReset(
|
|
|
252
253
|
|
|
253
254
|
restoreDefaultSaveData(key, saveData, childObjectKey);
|
|
254
255
|
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Removes a previously registered key from the save data manager. This is the opposite of the
|
|
259
|
+
* "saveDataManager" function.
|
|
260
|
+
*/
|
|
261
|
+
export function saveDataManagerRemove(key: string): void {
|
|
262
|
+
errorIfFeaturesNotInitialized(SAVE_DATA_MANAGER_FEATURE_NAME);
|
|
263
|
+
|
|
264
|
+
if (!isString(key)) {
|
|
265
|
+
error(
|
|
266
|
+
`The ${SAVE_DATA_MANAGER_FEATURE_NAME} requires that keys are strings. You tried to use a key of type: ${typeof key}`,
|
|
267
|
+
);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (!saveDataMap.has(key)) {
|
|
271
|
+
error(
|
|
272
|
+
`The ${SAVE_DATA_MANAGER_FEATURE_NAME} is not managing save data for a key of: ${key}`,
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// Delete the save data from the map.
|
|
277
|
+
saveDataMap.delete(key);
|
|
278
|
+
saveDataDefaultsMap.delete(key);
|
|
279
|
+
saveDataConditionalFuncMap.delete(key);
|
|
280
|
+
saveDataGlowingHourGlassMap.delete(key);
|
|
281
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CollectibleType, ModCallback } from "isaac-typescript-definitions";
|
|
2
|
-
import { ModUpgraded } from "../../classes/ModUpgraded";
|
|
3
2
|
import { game } from "../../core/cachedClasses";
|
|
4
3
|
import { ModCallbackCustom } from "../../enums/ModCallbackCustom";
|
|
5
4
|
import { SaveDataKey } from "../../enums/SaveDataKey";
|
|
@@ -9,6 +8,7 @@ import { logError } from "../../functions/logMisc";
|
|
|
9
8
|
import { onFirstFloor } from "../../functions/stage";
|
|
10
9
|
import { clearTable, iterateTableInOrder } from "../../functions/table";
|
|
11
10
|
import { SaveData } from "../../interfaces/SaveData";
|
|
11
|
+
import { CallbackTuple } from "../../types/private/CallbackTuple";
|
|
12
12
|
import {
|
|
13
13
|
SAVE_DATA_MANAGER_DEBUG,
|
|
14
14
|
SAVE_DATA_MANAGER_FEATURE_NAME,
|
|
@@ -31,36 +31,39 @@ const RESETTABLE_SAVE_DATA_KEYS: ReadonlySet<SaveDataKey> = new Set([
|
|
|
31
31
|
SaveDataKey.ROOM,
|
|
32
32
|
]);
|
|
33
33
|
|
|
34
|
-
let mod:
|
|
34
|
+
let mod: Mod | null = null;
|
|
35
35
|
let loadedDataOnThisRun = false;
|
|
36
36
|
let restoreGlowingHourGlassDataOnNextRoom = false;
|
|
37
37
|
|
|
38
|
-
export
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
mod.AddCallback(
|
|
38
|
+
export const SAVE_DATA_MANAGER_CALLBACKS: CallbackTuple[] = [
|
|
39
|
+
[
|
|
42
40
|
ModCallback.POST_USE_ITEM,
|
|
43
|
-
postUseItemGlowingHourGlass,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
[postUseItemGlowingHourGlass, CollectibleType.GLOWING_HOUR_GLASS],
|
|
42
|
+
], // 3
|
|
43
|
+
[ModCallback.POST_PLAYER_INIT, [postPlayerInit]], // 9
|
|
44
|
+
[ModCallback.PRE_GAME_EXIT, [preGameExit]], // 17
|
|
45
|
+
[ModCallback.POST_NEW_LEVEL, [postNewLevel]], // 18
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
// TODO: add tuple type annotation
|
|
49
|
+
export const SAVE_DATA_MANAGER_CUSTOM_CALLBACKS = [
|
|
50
|
+
[ModCallbackCustom.POST_NEW_ROOM_EARLY, [postNewRoomEarly]],
|
|
51
|
+
] as const;
|
|
52
|
+
|
|
53
|
+
export function saveDataManagerInit(incomingMod: Mod): void {
|
|
54
|
+
mod = incomingMod;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// ModCallback.POST_USE_ITEM (3)
|
|
56
58
|
// CollectibleType.GLOWING_HOUR_GLASS (422)
|
|
57
|
-
function postUseItemGlowingHourGlass() {
|
|
59
|
+
function postUseItemGlowingHourGlass(): boolean | undefined {
|
|
58
60
|
restoreGlowingHourGlassDataOnNextRoom = true;
|
|
59
61
|
return undefined;
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
// ModCallback.POST_PLAYER_INIT (9)
|
|
63
|
-
|
|
65
|
+
// eslint-disable-next-line isaacscript/no-void-return-type
|
|
66
|
+
function postPlayerInit(): void {
|
|
64
67
|
if (mod === null) {
|
|
65
68
|
error(
|
|
66
69
|
`The mod for the ${SAVE_DATA_MANAGER_FEATURE_NAME} was not initialized.`,
|
|
@@ -74,6 +77,9 @@ function postPlayerInit() {
|
|
|
74
77
|
}
|
|
75
78
|
loadedDataOnThisRun = true;
|
|
76
79
|
|
|
80
|
+
// Handle the race-condition of using the Glowing Hour Glass and then resetting the run.
|
|
81
|
+
restoreGlowingHourGlassDataOnNextRoom = false;
|
|
82
|
+
|
|
77
83
|
// We want to unconditionally load save data on every new run since there might be persistent data
|
|
78
84
|
// that is not tied to an individual run.
|
|
79
85
|
loadFromDisk(mod, saveDataMap);
|
|
@@ -89,7 +95,8 @@ function postPlayerInit() {
|
|
|
89
95
|
}
|
|
90
96
|
|
|
91
97
|
// ModCallback.PRE_GAME_EXIT (17)
|
|
92
|
-
|
|
98
|
+
// eslint-disable-next-line isaacscript/no-void-return-type
|
|
99
|
+
function preGameExit(): void {
|
|
93
100
|
if (mod === null) {
|
|
94
101
|
error(
|
|
95
102
|
`The mod for the ${SAVE_DATA_MANAGER_FEATURE_NAME} was not initialized.`,
|
|
@@ -105,7 +112,8 @@ function preGameExit() {
|
|
|
105
112
|
}
|
|
106
113
|
|
|
107
114
|
// ModCallback.POST_NEW_LEVEL (18)
|
|
108
|
-
|
|
115
|
+
// eslint-disable-next-line isaacscript/no-void-return-type
|
|
116
|
+
function postNewLevel(): void {
|
|
109
117
|
if (mod === null) {
|
|
110
118
|
error(
|
|
111
119
|
`The mod for the ${SAVE_DATA_MANAGER_FEATURE_NAME} was not initialized.`,
|
|
@@ -122,7 +130,8 @@ function postNewLevel() {
|
|
|
122
130
|
}
|
|
123
131
|
|
|
124
132
|
// ModCallbackCustom.POST_NEW_ROOM_EARLY
|
|
125
|
-
|
|
133
|
+
// eslint-disable-next-line isaacscript/no-void-return-type
|
|
134
|
+
function postNewRoomEarly(): void {
|
|
126
135
|
restoreDefaults(SaveDataKey.ROOM);
|
|
127
136
|
|
|
128
137
|
// Handle the Glowing Hour Glass.
|
|
@@ -2,7 +2,7 @@ import { SerializationType } from "../../enums/SerializationType";
|
|
|
2
2
|
import { deepCopy } from "../../functions/deepCopy";
|
|
3
3
|
import { jsonEncode } from "../../functions/jsonHelpers";
|
|
4
4
|
import { log } from "../../functions/log";
|
|
5
|
-
import { iterateTableInOrder } from "../../functions/table";
|
|
5
|
+
import { isTableEmpty, iterateTableInOrder } from "../../functions/table";
|
|
6
6
|
import { SaveData } from "../../interfaces/SaveData";
|
|
7
7
|
import {
|
|
8
8
|
SAVE_DATA_MANAGER_DEBUG,
|
|
@@ -53,7 +53,7 @@ function getAllSaveDataToWriteToDisk(
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// If there is no data, then we can move on to the next feature.
|
|
56
|
-
if (
|
|
56
|
+
if (isTableEmpty(saveDataWithoutRoom as LuaTable<AnyNotNil, unknown>)) {
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
|
package/src/features.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { ModCallbackCustomToClass } from "./callbacks";
|
|
2
|
+
import { CustomGridEntities } from "./classes/features/callbackLogic/CustomGridEntities";
|
|
3
|
+
import { CustomRevive } from "./classes/features/callbackLogic/CustomRevive";
|
|
4
|
+
import { EsauJrDetection } from "./classes/features/callbackLogic/EsauJrDetection";
|
|
5
|
+
import { FlipDetection } from "./classes/features/callbackLogic/FlipDetection";
|
|
6
|
+
import { GameReorderedCallbacks } from "./classes/features/callbackLogic/GameReorderedCallbacks";
|
|
7
|
+
import { GridEntityCollisionDetection } from "./classes/features/callbackLogic/GridEntityCollisionDetection";
|
|
8
|
+
import { GridEntityDetection } from "./classes/features/callbackLogic/GridEntityDetection";
|
|
9
|
+
import { PlayerReorderedCallbacks } from "./classes/features/callbackLogic/PlayerReorderedCallbacks";
|
|
10
|
+
import { RunInNFrames } from "./classes/features/other/RunInNFrames";
|
|
11
|
+
import { ISCFeature } from "./enums/ISCFeature";
|
|
12
|
+
import { ModCallbackCustom2 } from "./enums/ModCallbackCustom2";
|
|
13
|
+
import {
|
|
14
|
+
newObjectWithEnumKeys,
|
|
15
|
+
validateInterfaceMatchesEnum,
|
|
16
|
+
} from "./functions/utils";
|
|
17
|
+
|
|
18
|
+
export interface ISCFeatureToClass {
|
|
19
|
+
// Callback logic
|
|
20
|
+
[ISCFeature.CUSTOM_REVIVE]: CustomRevive;
|
|
21
|
+
[ISCFeature.ESAU_JR_DETECTION]: EsauJrDetection;
|
|
22
|
+
[ISCFeature.FLIP_DETECTION]: FlipDetection;
|
|
23
|
+
[ISCFeature.GRID_ENTITY_COLLISION_DETECTION]: GridEntityCollisionDetection;
|
|
24
|
+
[ISCFeature.GRID_ENTITY_DETECTION]: GridEntityDetection;
|
|
25
|
+
[ISCFeature.GAME_REORDERED_CALLBACKS]: GameReorderedCallbacks;
|
|
26
|
+
[ISCFeature.PLAYER_REORDERED_CALLBACKS]: PlayerReorderedCallbacks;
|
|
27
|
+
|
|
28
|
+
// Extra features
|
|
29
|
+
[ISCFeature.CUSTOM_GRID_ENTITIES]: CustomGridEntities;
|
|
30
|
+
[ISCFeature.RUN_IN_N_FRAMES]: RunInNFrames;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
validateInterfaceMatchesEnum<ISCFeatureToClass, ISCFeature>();
|
|
34
|
+
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
36
|
+
export function getFeatures(callbacks: ModCallbackCustomToClass) {
|
|
37
|
+
// Some features rely on other features; we must initialize those first.
|
|
38
|
+
const runInNFrames = new RunInNFrames();
|
|
39
|
+
const customGridEntities = new CustomGridEntities(runInNFrames);
|
|
40
|
+
|
|
41
|
+
return newObjectWithEnumKeys(ISCFeature, {
|
|
42
|
+
// Callback logic
|
|
43
|
+
[ISCFeature.CUSTOM_REVIVE]: new CustomRevive(
|
|
44
|
+
callbacks[ModCallbackCustom2.PRE_CUSTOM_REVIVE],
|
|
45
|
+
callbacks[ModCallbackCustom2.POST_CUSTOM_REVIVE],
|
|
46
|
+
),
|
|
47
|
+
[ISCFeature.ESAU_JR_DETECTION]: new EsauJrDetection(
|
|
48
|
+
callbacks[ModCallbackCustom2.POST_ESAU_JR],
|
|
49
|
+
callbacks[ModCallbackCustom2.POST_FIRST_ESAU_JR],
|
|
50
|
+
),
|
|
51
|
+
[ISCFeature.FLIP_DETECTION]: new FlipDetection(
|
|
52
|
+
callbacks[ModCallbackCustom2.POST_FLIP],
|
|
53
|
+
callbacks[ModCallbackCustom2.POST_FIRST_FLIP],
|
|
54
|
+
),
|
|
55
|
+
[ISCFeature.GRID_ENTITY_COLLISION_DETECTION]:
|
|
56
|
+
new GridEntityCollisionDetection(
|
|
57
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_COLLISION],
|
|
58
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_COLLISION],
|
|
59
|
+
customGridEntities,
|
|
60
|
+
),
|
|
61
|
+
[ISCFeature.GRID_ENTITY_DETECTION]: new GridEntityDetection(
|
|
62
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_INIT],
|
|
63
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_INIT],
|
|
64
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_UPDATE],
|
|
65
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_UPDATE],
|
|
66
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_REMOVE],
|
|
67
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_REMOVE],
|
|
68
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_STATE_CHANGED],
|
|
69
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_STATE_CHANGED],
|
|
70
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_BROKEN],
|
|
71
|
+
callbacks[ModCallbackCustom2.POST_GRID_ENTITY_CUSTOM_BROKEN],
|
|
72
|
+
customGridEntities,
|
|
73
|
+
),
|
|
74
|
+
[ISCFeature.GAME_REORDERED_CALLBACKS]: new GameReorderedCallbacks(
|
|
75
|
+
callbacks[ModCallbackCustom2.POST_GAME_STARTED_REORDERED],
|
|
76
|
+
callbacks[ModCallbackCustom2.POST_NEW_LEVEL_REORDERED],
|
|
77
|
+
callbacks[ModCallbackCustom2.POST_NEW_ROOM_REORDERED],
|
|
78
|
+
callbacks[ModCallbackCustom2.POST_GAME_STARTED_REORDERED_LAST],
|
|
79
|
+
),
|
|
80
|
+
[ISCFeature.PLAYER_REORDERED_CALLBACKS]: new PlayerReorderedCallbacks(
|
|
81
|
+
callbacks[ModCallbackCustom2.POST_PEFFECT_UPDATE_REORDERED],
|
|
82
|
+
callbacks[ModCallbackCustom2.POST_PLAYER_RENDER_REORDERED],
|
|
83
|
+
callbacks[ModCallbackCustom2.POST_PEFFECT_UPDATE_REORDERED],
|
|
84
|
+
),
|
|
85
|
+
|
|
86
|
+
// Extra features
|
|
87
|
+
[ISCFeature.CUSTOM_GRID_ENTITIES]: customGridEntities,
|
|
88
|
+
[ISCFeature.RUN_IN_N_FRAMES]: runInNFrames,
|
|
89
|
+
} as const);
|
|
90
|
+
}
|
package/src/functions/ambush.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { SackSubType } from "isaac-typescript-definitions";
|
|
1
|
+
import { RoomType, SackSubType } from "isaac-typescript-definitions";
|
|
2
|
+
import { game } from "../core/cachedClasses";
|
|
3
|
+
import { AmbushType } from "../enums/AmbushType";
|
|
2
4
|
import { runNextGameFrame } from "../features/runInNFrames";
|
|
3
5
|
import { removeEntities } from "./entities";
|
|
4
6
|
import { getCoins, spawnSackWithSeed } from "./pickupsSpecific";
|
|
@@ -6,6 +8,29 @@ import { getCoins, spawnSackWithSeed } from "./pickupsSpecific";
|
|
|
6
8
|
/** Hard-coding this makes it easier to clean up the pickups afterwards. */
|
|
7
9
|
const SACK_SEED_THAT_SPAWNS_TWO_COINS = 6 as Seed;
|
|
8
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Helper function to get the corresponding ambush type for the current room. Returns undefined if
|
|
13
|
+
* the current room does not correspond to any particular ambush type.
|
|
14
|
+
*/
|
|
15
|
+
export function getAmbushType(): AmbushType | undefined {
|
|
16
|
+
const room = game.GetRoom();
|
|
17
|
+
const roomType = room.GetType();
|
|
18
|
+
|
|
19
|
+
switch (roomType) {
|
|
20
|
+
case RoomType.BOSS_RUSH: {
|
|
21
|
+
return AmbushType.BOSS_RUSH;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
case RoomType.CHALLENGE: {
|
|
25
|
+
return AmbushType.CHALLENGE_ROOM;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
default: {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
9
34
|
/**
|
|
10
35
|
* Helper function to start a Challenge Room or the Boss Rush.
|
|
11
36
|
*
|
|
@@ -79,7 +79,7 @@ export function getCharacterDeathAnimationName(character: PlayerType): string {
|
|
|
79
79
|
return "LostDeath";
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
if (character === PlayerType.
|
|
82
|
+
if (character === PlayerType.FORGOTTEN_B) {
|
|
83
83
|
return "ForgottenDeath";
|
|
84
84
|
}
|
|
85
85
|
|
|
@@ -98,12 +98,12 @@ export function getCharacterMaxHeartContainers(character: PlayerType): int {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
// 16
|
|
101
|
-
if (character === PlayerType.
|
|
101
|
+
if (character === PlayerType.FORGOTTEN) {
|
|
102
102
|
return 6;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
// 17
|
|
106
|
-
if (character === PlayerType.
|
|
106
|
+
if (character === PlayerType.SOUL) {
|
|
107
107
|
return 6;
|
|
108
108
|
}
|
|
109
109
|
|