isaacscript-common 4.0.3 → 4.0.4

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.
Files changed (366) hide show
  1. package/package.json +1 -1
  2. package/cachedClasses.ts +0 -39
  3. package/callbacks/customRevive.ts +0 -215
  4. package/callbacks/itemPickup.ts +0 -101
  5. package/callbacks/postAmbush.ts +0 -73
  6. package/callbacks/postBombExploded.ts +0 -26
  7. package/callbacks/postBombInitLate.ts +0 -36
  8. package/callbacks/postBoneSwing.ts +0 -64
  9. package/callbacks/postCollectibleInitFirst.ts +0 -40
  10. package/callbacks/postCursedTeleport.ts +0 -185
  11. package/callbacks/postCustomDoorEnter.ts +0 -292
  12. package/callbacks/postDiceRoomActivated.ts +0 -60
  13. package/callbacks/postDoorRender.ts +0 -26
  14. package/callbacks/postDoorUpdate.ts +0 -26
  15. package/callbacks/postEffectInitLate.ts +0 -36
  16. package/callbacks/postEffectStateChanged.ts +0 -43
  17. package/callbacks/postEsauJr.ts +0 -109
  18. package/callbacks/postFamiliarInitLate.ts +0 -36
  19. package/callbacks/postFamiliarStateChanged.ts +0 -43
  20. package/callbacks/postFlip.ts +0 -90
  21. package/callbacks/postGreedModeWave.ts +0 -41
  22. package/callbacks/postGridEntity.ts +0 -164
  23. package/callbacks/postGridEntityCollision.ts +0 -69
  24. package/callbacks/postGridEntityRender.ts +0 -26
  25. package/callbacks/postHolyMantleRemoved.ts +0 -55
  26. package/callbacks/postItemDischarged.ts +0 -154
  27. package/callbacks/postKnifeInitLate.ts +0 -36
  28. package/callbacks/postLaserInitLate.ts +0 -36
  29. package/callbacks/postNPCInitLate.ts +0 -36
  30. package/callbacks/postNPCStateChanged.ts +0 -42
  31. package/callbacks/postNewRoomEarly.ts +0 -96
  32. package/callbacks/postPickupCollect.ts +0 -48
  33. package/callbacks/postPickupInitFirst.ts +0 -70
  34. package/callbacks/postPickupInitLate.ts +0 -36
  35. package/callbacks/postPickupStateChanged.ts +0 -43
  36. package/callbacks/postPitRender.ts +0 -26
  37. package/callbacks/postPitUpdate.ts +0 -26
  38. package/callbacks/postPlayerChangeHealth.ts +0 -62
  39. package/callbacks/postPlayerChangeType.ts +0 -56
  40. package/callbacks/postPlayerCollectible.ts +0 -113
  41. package/callbacks/postPlayerFatalDamage.ts +0 -141
  42. package/callbacks/postPlayerInitLate.ts +0 -37
  43. package/callbacks/postPlayerReordered.ts +0 -142
  44. package/callbacks/postPoopRender.ts +0 -26
  45. package/callbacks/postPoopUpdate.ts +0 -26
  46. package/callbacks/postPressurePlateRender.ts +0 -26
  47. package/callbacks/postPressurePlateUpdate.ts +0 -26
  48. package/callbacks/postProjectileInitLate.ts +0 -36
  49. package/callbacks/postPurchase.ts +0 -64
  50. package/callbacks/postRockRender.ts +0 -26
  51. package/callbacks/postRockUpdate.ts +0 -26
  52. package/callbacks/postRoomClearChanged.ts +0 -57
  53. package/callbacks/postSacrifice.ts +0 -64
  54. package/callbacks/postSlotDestroyed.ts +0 -92
  55. package/callbacks/postSlotInitUpdate.ts +0 -68
  56. package/callbacks/postSlotRender.ts +0 -69
  57. package/callbacks/postSpikesRender.ts +0 -26
  58. package/callbacks/postSpikesUpdate.ts +0 -26
  59. package/callbacks/postTNTRender.ts +0 -26
  60. package/callbacks/postTNTUpdate.ts +0 -26
  61. package/callbacks/postTearInitLate.ts +0 -36
  62. package/callbacks/postTearInitVeryLate.ts +0 -41
  63. package/callbacks/postTransformation.ts +0 -59
  64. package/callbacks/postTrinketBreak.ts +0 -112
  65. package/callbacks/preBerserkDeath.ts +0 -49
  66. package/callbacks/preNewLevel.ts +0 -55
  67. package/callbacks/reorderedCallbacks.ts +0 -168
  68. package/callbacks/subscriptions/postAmbushFinished.ts +0 -32
  69. package/callbacks/subscriptions/postAmbushStarted.ts +0 -32
  70. package/callbacks/subscriptions/postBombInitLate.ts +0 -32
  71. package/callbacks/subscriptions/postBoneExploded.ts +0 -32
  72. package/callbacks/subscriptions/postBoneSwing.ts +0 -24
  73. package/callbacks/subscriptions/postCollectibleInitFirst.ts +0 -37
  74. package/callbacks/subscriptions/postCursedTeleport.ts +0 -24
  75. package/callbacks/subscriptions/postCustomDoorEnter.ts +0 -45
  76. package/callbacks/subscriptions/postCustomRevive.ts +0 -36
  77. package/callbacks/subscriptions/postDiceRoomActivated.ts +0 -38
  78. package/callbacks/subscriptions/postDoorRender.ts +0 -35
  79. package/callbacks/subscriptions/postDoorUpdate.ts +0 -35
  80. package/callbacks/subscriptions/postEffectInitLate.ts +0 -32
  81. package/callbacks/subscriptions/postEffectStateChanged.ts +0 -40
  82. package/callbacks/subscriptions/postEsauJr.ts +0 -24
  83. package/callbacks/subscriptions/postFamiliarInitLate.ts +0 -32
  84. package/callbacks/subscriptions/postFamiliarStateChanged.ts +0 -40
  85. package/callbacks/subscriptions/postFirstEsauJr.ts +0 -24
  86. package/callbacks/subscriptions/postFirstFlip.ts +0 -24
  87. package/callbacks/subscriptions/postFlip.ts +0 -22
  88. package/callbacks/subscriptions/postGameStartedReordered.ts +0 -24
  89. package/callbacks/subscriptions/postGreedModeWave.ts +0 -24
  90. package/callbacks/subscriptions/postGridEntityBroken.ts +0 -51
  91. package/callbacks/subscriptions/postGridEntityCollision.ts +0 -54
  92. package/callbacks/subscriptions/postGridEntityInit.ts +0 -51
  93. package/callbacks/subscriptions/postGridEntityRemove.ts +0 -52
  94. package/callbacks/subscriptions/postGridEntityRender.ts +0 -51
  95. package/callbacks/subscriptions/postGridEntityStateChanged.ts +0 -55
  96. package/callbacks/subscriptions/postGridEntityUpdate.ts +0 -51
  97. package/callbacks/subscriptions/postHolyMantleRemoved.ts +0 -48
  98. package/callbacks/subscriptions/postItemDischarged.ts +0 -43
  99. package/callbacks/subscriptions/postItemPickup.ts +0 -64
  100. package/callbacks/subscriptions/postKnifeInitLate.ts +0 -32
  101. package/callbacks/subscriptions/postLaserInitLate.ts +0 -32
  102. package/callbacks/subscriptions/postNPCInitLate.ts +0 -32
  103. package/callbacks/subscriptions/postNPCStateChanged.ts +0 -42
  104. package/callbacks/subscriptions/postNewLevelReordered.ts +0 -22
  105. package/callbacks/subscriptions/postNewRoomEarly.ts +0 -22
  106. package/callbacks/subscriptions/postNewRoomReordered.ts +0 -22
  107. package/callbacks/subscriptions/postPEffectUpdateReordered.ts +0 -40
  108. package/callbacks/subscriptions/postPickupCollect.ts +0 -35
  109. package/callbacks/subscriptions/postPickupInitFirst.ts +0 -32
  110. package/callbacks/subscriptions/postPickupInitLate.ts +0 -32
  111. package/callbacks/subscriptions/postPickupStateChanged.ts +0 -40
  112. package/callbacks/subscriptions/postPitRender.ts +0 -35
  113. package/callbacks/subscriptions/postPitUpdate.ts +0 -35
  114. package/callbacks/subscriptions/postPlayerChangeHealth.ts +0 -49
  115. package/callbacks/subscriptions/postPlayerChangeType.ts +0 -40
  116. package/callbacks/subscriptions/postPlayerCollectibleAdded.ts +0 -38
  117. package/callbacks/subscriptions/postPlayerCollectibleRemoved.ts +0 -38
  118. package/callbacks/subscriptions/postPlayerFatalDamage.ts +0 -68
  119. package/callbacks/subscriptions/postPlayerInitLate.ts +0 -40
  120. package/callbacks/subscriptions/postPlayerInitReordered.ts +0 -40
  121. package/callbacks/subscriptions/postPlayerRenderReordered.ts +0 -40
  122. package/callbacks/subscriptions/postPlayerUpdateReordered.ts +0 -40
  123. package/callbacks/subscriptions/postPoopRender.ts +0 -35
  124. package/callbacks/subscriptions/postPoopUpdate.ts +0 -35
  125. package/callbacks/subscriptions/postPressurePlateRender.ts +0 -37
  126. package/callbacks/subscriptions/postPressurePlateUpdate.ts +0 -37
  127. package/callbacks/subscriptions/postProjectileInitLate.ts +0 -35
  128. package/callbacks/subscriptions/postPurchase.ts +0 -31
  129. package/callbacks/subscriptions/postRockRender.ts +0 -35
  130. package/callbacks/subscriptions/postRockUpdate.ts +0 -35
  131. package/callbacks/subscriptions/postRoomClearChanged.ts +0 -30
  132. package/callbacks/subscriptions/postSacrifice.ts +0 -43
  133. package/callbacks/subscriptions/postSlotAnimationChanged.ts +0 -40
  134. package/callbacks/subscriptions/postSlotDestroyed.ts +0 -55
  135. package/callbacks/subscriptions/postSlotInit.ts +0 -32
  136. package/callbacks/subscriptions/postSlotRender.ts +0 -32
  137. package/callbacks/subscriptions/postSlotUpdate.ts +0 -32
  138. package/callbacks/subscriptions/postSpikesRender.ts +0 -35
  139. package/callbacks/subscriptions/postSpikesUpdate.ts +0 -35
  140. package/callbacks/subscriptions/postTNTRender.ts +0 -35
  141. package/callbacks/subscriptions/postTNTUpdate.ts +0 -35
  142. package/callbacks/subscriptions/postTearInitLate.ts +0 -32
  143. package/callbacks/subscriptions/postTearInitVeryLate.ts +0 -32
  144. package/callbacks/subscriptions/postTransformation.ts +0 -40
  145. package/callbacks/subscriptions/postTrinketBreak.ts +0 -38
  146. package/callbacks/subscriptions/preBerserkDeath.ts +0 -42
  147. package/callbacks/subscriptions/preCustomRevive.ts +0 -46
  148. package/callbacks/subscriptions/preItemPickup.ts +0 -64
  149. package/callbacks/subscriptions/preNewLevel.ts +0 -24
  150. package/classes/DefaultMap.ts +0 -174
  151. package/classes/ModUpgraded.ts +0 -84
  152. package/constants.ts +0 -162
  153. package/constantsFirstLast.ts +0 -217
  154. package/enums/AmbushType.ts +0 -4
  155. package/enums/HealthType.ts +0 -16
  156. package/enums/ModCallbackCustom.ts +0 -1278
  157. package/enums/PocketItemType.ts +0 -8
  158. package/enums/SerializationType.ts +0 -5
  159. package/enums/SlotDestructionType.ts +0 -4
  160. package/enums/private/CopyableIsaacAPIClassType.ts +0 -7
  161. package/enums/private/SaveDataKey.ts +0 -14
  162. package/enums/private/SerializationBrand.ts +0 -42
  163. package/features/characterHealthConversion.ts +0 -111
  164. package/features/characterStats.ts +0 -61
  165. package/features/debugDisplay/debugDisplay.ts +0 -221
  166. package/features/debugDisplay/exports.ts +0 -368
  167. package/features/debugDisplay/v.ts +0 -65
  168. package/features/deployJSONRoom.ts +0 -743
  169. package/features/disableInputs.ts +0 -193
  170. package/features/disableSound.ts +0 -77
  171. package/features/extraConsoleCommands/commandsDisplay.ts +0 -290
  172. package/features/extraConsoleCommands/commandsSubroutines.ts +0 -139
  173. package/features/extraConsoleCommands/init.ts +0 -334
  174. package/features/extraConsoleCommands/listCommands.ts +0 -1299
  175. package/features/extraConsoleCommands/v.ts +0 -14
  176. package/features/fadeInRemover.ts +0 -60
  177. package/features/fastReset.ts +0 -75
  178. package/features/forgottenSwitch.ts +0 -50
  179. package/features/getCollectibleItemPoolType.ts +0 -66
  180. package/features/persistentEntities.ts +0 -183
  181. package/features/playerInventory.ts +0 -135
  182. package/features/ponyDetection.ts +0 -74
  183. package/features/preventCollectibleRotation.ts +0 -115
  184. package/features/runInNFrames.ts +0 -148
  185. package/features/saveDataManager/constants.ts +0 -4
  186. package/features/saveDataManager/exports.ts +0 -229
  187. package/features/saveDataManager/load.ts +0 -99
  188. package/features/saveDataManager/main.ts +0 -195
  189. package/features/saveDataManager/maps.ts +0 -13
  190. package/features/saveDataManager/merge.ts +0 -194
  191. package/features/saveDataManager/save.ts +0 -74
  192. package/features/saveDataManager/serializationBrand.ts +0 -16
  193. package/features/sirenHelpers.ts +0 -129
  194. package/features/taintedLazarusPlayers.ts +0 -113
  195. package/featuresInitialized.ts +0 -20
  196. package/functions/ambush.ts +0 -47
  197. package/functions/array.ts +0 -410
  198. package/functions/benchmark.ts +0 -36
  199. package/functions/bitwise.ts +0 -24
  200. package/functions/bombs.ts +0 -12
  201. package/functions/boss.ts +0 -227
  202. package/functions/cacheFlag.ts +0 -12
  203. package/functions/cards.ts +0 -271
  204. package/functions/challenges.ts +0 -13
  205. package/functions/character.ts +0 -126
  206. package/functions/charge.ts +0 -237
  207. package/functions/chargeBar.ts +0 -67
  208. package/functions/collectibleCacheFlag.ts +0 -90
  209. package/functions/collectibleSet.ts +0 -56
  210. package/functions/collectibleTag.ts +0 -89
  211. package/functions/collectibles.ts +0 -659
  212. package/functions/color.ts +0 -128
  213. package/functions/debug.ts +0 -68
  214. package/functions/deepCopy.ts +0 -535
  215. package/functions/deepCopyTests.ts +0 -386
  216. package/functions/direction.ts +0 -49
  217. package/functions/doors.ts +0 -347
  218. package/functions/easing.ts +0 -182
  219. package/functions/eden.ts +0 -47
  220. package/functions/effects.ts +0 -20
  221. package/functions/entity.ts +0 -439
  222. package/functions/entitySpecific.ts +0 -889
  223. package/functions/entityTypes.ts +0 -6
  224. package/functions/enums.ts +0 -146
  225. package/functions/familiars.ts +0 -106
  226. package/functions/flag.ts +0 -165
  227. package/functions/flying.ts +0 -117
  228. package/functions/globals.ts +0 -242
  229. package/functions/gridEntity.ts +0 -511
  230. package/functions/gridEntitySpecific.ts +0 -112
  231. package/functions/input.ts +0 -139
  232. package/functions/isaacAPIClass.ts +0 -67
  233. package/functions/jsonHelpers.ts +0 -45
  234. package/functions/jsonRoom.ts +0 -100
  235. package/functions/kColor.ts +0 -129
  236. package/functions/language.ts +0 -13
  237. package/functions/level.ts +0 -31
  238. package/functions/log.ts +0 -720
  239. package/functions/map.ts +0 -56
  240. package/functions/math.ts +0 -149
  241. package/functions/mergeTests.ts +0 -288
  242. package/functions/npc.ts +0 -148
  243. package/functions/pickupVariants.ts +0 -60
  244. package/functions/pickups.ts +0 -499
  245. package/functions/pills.ts +0 -205
  246. package/functions/player.ts +0 -1056
  247. package/functions/playerDataStructures.ts +0 -150
  248. package/functions/playerHealth.ts +0 -382
  249. package/functions/playerIndex.ts +0 -195
  250. package/functions/pocketItems.ts +0 -149
  251. package/functions/positionVelocity.ts +0 -188
  252. package/functions/random.ts +0 -77
  253. package/functions/revive.ts +0 -201
  254. package/functions/rng.ts +0 -172
  255. package/functions/roomData.ts +0 -199
  256. package/functions/roomGrid.ts +0 -109
  257. package/functions/roomShape.ts +0 -80
  258. package/functions/rooms.ts +0 -648
  259. package/functions/run.ts +0 -36
  260. package/functions/saveFile.ts +0 -128
  261. package/functions/seeds.ts +0 -19
  262. package/functions/serialization.ts +0 -91
  263. package/functions/set.ts +0 -95
  264. package/functions/sound.ts +0 -9
  265. package/functions/spawnCollectible.ts +0 -104
  266. package/functions/sprite.ts +0 -107
  267. package/functions/stage.ts +0 -125
  268. package/functions/string.ts +0 -47
  269. package/functions/table.ts +0 -189
  270. package/functions/tears.ts +0 -32
  271. package/functions/transformations.ts +0 -131
  272. package/functions/trinketCacheFlag.ts +0 -60
  273. package/functions/trinketGive.ts +0 -157
  274. package/functions/trinkets.ts +0 -215
  275. package/functions/tstlClass.ts +0 -157
  276. package/functions/types.ts +0 -36
  277. package/functions/ui.ts +0 -138
  278. package/functions/utils.ts +0 -189
  279. package/functions/vector.ts +0 -126
  280. package/index.ts +0 -172
  281. package/initCustomCallbacks.ts +0 -132
  282. package/initFeatures.ts +0 -39
  283. package/interfaces/AddCallbackParameterCustom.ts +0 -188
  284. package/interfaces/ChargeBarSprites.ts +0 -12
  285. package/interfaces/JSONDoor.ts +0 -13
  286. package/interfaces/JSONEntity.ts +0 -16
  287. package/interfaces/JSONRoom.ts +0 -36
  288. package/interfaces/JSONRooms.ts +0 -12
  289. package/interfaces/JSONSpawn.ts +0 -14
  290. package/interfaces/PlayerHealth.ts +0 -16
  291. package/interfaces/PocketItemDescription.ts +0 -9
  292. package/interfaces/SaveData.ts +0 -29
  293. package/interfaces/TrinketSituation.ts +0 -9
  294. package/interfaces/private/TSTLClassMetatable.ts +0 -8
  295. package/maps/PHDPillConversions.ts +0 -21
  296. package/maps/cardMap.ts +0 -209
  297. package/maps/characterMap.ts +0 -87
  298. package/maps/collectibleDescriptionMap.ts +0 -732
  299. package/maps/collectibleNameMap.ts +0 -731
  300. package/maps/defaultPlayerStatMap.ts +0 -17
  301. package/maps/falsePHDPillConversions.ts +0 -35
  302. package/maps/gridEntityTypeToBrokenStateMap.ts +0 -50
  303. package/maps/gridEntityXMLMap.ts +0 -176
  304. package/maps/pillEffectMap.ts +0 -88
  305. package/maps/roomShapeToTopLeftWallGridIndexMap.ts +0 -18
  306. package/maps/roomTypeMap.ts +0 -40
  307. package/maps/trinketDescriptionMap.ts +0 -200
  308. package/maps/trinketNameMap.ts +0 -198
  309. package/objects/LRoomShapeToRectangles.ts +0 -44
  310. package/objects/callbackRegisterFunctions.ts +0 -187
  311. package/objects/cardDescriptions.ts +0 -105
  312. package/objects/cardNames.ts +0 -105
  313. package/objects/cardTypes.ts +0 -104
  314. package/objects/challengeNames.ts +0 -52
  315. package/objects/characterNames.ts +0 -48
  316. package/objects/coinSubTypeToValue.ts +0 -14
  317. package/objects/colors.ts +0 -16
  318. package/objects/directionNames.ts +0 -11
  319. package/objects/directionToDegrees.ts +0 -11
  320. package/objects/directionToVector.ts +0 -12
  321. package/objects/doorSlotFlagToDoorSlot.ts +0 -16
  322. package/objects/doorSlotToDirection.ts +0 -14
  323. package/objects/isaacAPIClassTypeToBrand.ts +0 -11
  324. package/objects/isaacAPIClassTypeToCopyFunction.ts +0 -18
  325. package/objects/languageNames.ts +0 -13
  326. package/objects/oppositeDoorSlots.ts +0 -15
  327. package/objects/pillEffectClasses.ts +0 -63
  328. package/objects/pillEffectNames.ts +0 -57
  329. package/objects/pillEffectTypes.ts +0 -62
  330. package/objects/roomShapeBounds.ts +0 -71
  331. package/objects/roomShapeLayoutSizes.ts +0 -45
  332. package/objects/roomShapeToBottomRightPosition.ts +0 -25
  333. package/objects/roomShapeToDoorSlots.ts +0 -83
  334. package/objects/roomShapeToDoorSlotsToGridIndexDelta.ts +0 -127
  335. package/objects/roomShapeToGridWidth.ts +0 -21
  336. package/objects/roomShapeToTopLeftPosition.ts +0 -26
  337. package/objects/roomShapeVolumes.ts +0 -38
  338. package/objects/roomTypeNames.ts +0 -36
  339. package/objects/serializedIsaacAPIClassTypeToIdentityFunction.ts +0 -14
  340. package/objects/stageTypeToLetter.ts +0 -15
  341. package/objects/transformationNames.ts +0 -18
  342. package/patchErrorFunctions.ts +0 -92
  343. package/sets/LRoomShapesSet.ts +0 -8
  344. package/sets/bossSets.ts +0 -470
  345. package/sets/charactersThatStartWithAnActiveItemSet.ts +0 -16
  346. package/sets/charactersWithBlackHeartFromEternalHeartSet.ts +0 -7
  347. package/sets/charactersWithFreeDevilDealsSet.ts +0 -4
  348. package/sets/charactersWithNoRedHeartsSet.ts +0 -17
  349. package/sets/charactersWithNoSoulHeartsSet.ts +0 -14
  350. package/sets/chestPickupVariantsSet.ts +0 -16
  351. package/sets/familiarsThatShootPlayerTearsSet.ts +0 -13
  352. package/sets/lostStyleCharactersSet.ts +0 -13
  353. package/sets/mineShaftRoomSubTypesSet.ts +0 -10
  354. package/sets/redHeartSubTypesSet.ts +0 -7
  355. package/sets/sinEntityTypesSet.ts +0 -11
  356. package/sets/singleUseActiveCollectibleTypesSet.ts +0 -13
  357. package/sets/storyBossesSet.ts +0 -17
  358. package/types/AnyEntity.ts +0 -12
  359. package/types/AwaitingTextInput.d.ts +0 -2
  360. package/types/CollectibleIndex.ts +0 -16
  361. package/types/PickingUpItem.ts +0 -89
  362. package/types/PlayerIndex.ts +0 -13
  363. package/types/private/IsaacAPIClass.ts +0 -3
  364. package/types/private/SerializedIsaacAPIClass.ts +0 -3
  365. package/types/private/TSTLClass.ts +0 -3
  366. package/upgradeMod.ts +0 -55
@@ -1,64 +0,0 @@
1
- import { DefaultMap } from "../classes/DefaultMap";
2
- import { ModUpgraded } from "../classes/ModUpgraded";
3
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
4
- import { saveDataManager } from "../features/saveDataManager/exports";
5
- import { getPickups } from "../functions/entitySpecific";
6
- import {
7
- defaultMapGetPlayer,
8
- mapSetPlayer,
9
- } from "../functions/playerDataStructures";
10
- import { PlayerIndex } from "../types/PlayerIndex";
11
- import {
12
- postPurchaseFire,
13
- postPurchaseHasSubscriptions,
14
- } from "./subscriptions/postPurchase";
15
-
16
- const v = {
17
- room: {
18
- playersHoldingItemOnLastFrameMap: new DefaultMap<PlayerIndex, boolean>(
19
- false,
20
- ),
21
- },
22
- };
23
-
24
- /** @internal */
25
- export function postPurchaseInit(mod: ModUpgraded): void {
26
- saveDataManager("postPurchase", v, hasSubscriptions);
27
-
28
- mod.AddCallbackCustom(
29
- ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED,
30
- postPEffectUpdateReordered,
31
- );
32
- }
33
-
34
- function hasSubscriptions() {
35
- return postPurchaseHasSubscriptions();
36
- }
37
-
38
- // ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED
39
- function postPEffectUpdateReordered(player: EntityPlayer) {
40
- if (!hasSubscriptions()) {
41
- return;
42
- }
43
-
44
- const isHoldingItem = player.IsHoldingItem();
45
- const wasHoldingItemOnLastFrame = defaultMapGetPlayer(
46
- v.room.playersHoldingItemOnLastFrameMap,
47
- player,
48
- );
49
- mapSetPlayer(v.room.playersHoldingItemOnLastFrameMap, player, isHoldingItem);
50
-
51
- if (!wasHoldingItemOnLastFrame && isHoldingItem) {
52
- playerPickedUpNewItem(player);
53
- }
54
- }
55
-
56
- function playerPickedUpNewItem(player: EntityPlayer) {
57
- const pickups = getPickups();
58
- const disappearingPickup = pickups.find(
59
- (pickup) => !pickup.Exists() && pickup.Price !== 0,
60
- );
61
- if (disappearingPickup !== undefined) {
62
- postPurchaseFire(player, disappearingPickup);
63
- }
64
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getRocks } from "../functions/gridEntitySpecific";
3
- import {
4
- postRockRenderFire,
5
- postRockRenderHasSubscriptions,
6
- } from "./subscriptions/postRockRender";
7
-
8
- /** @internal */
9
- export function postRockRenderInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postRockRenderHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_RENDER (2)
18
- function postRender() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const rock of getRocks()) {
24
- postRockRenderFire(rock);
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getRocks } from "../functions/gridEntitySpecific";
3
- import {
4
- postRockUpdateFire,
5
- postRockUpdateHasSubscriptions,
6
- } from "./subscriptions/postRockUpdate";
7
-
8
- /** @internal */
9
- export function postRockUpdateInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postRockUpdateHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_UPDATE (1)
18
- function postUpdate() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const rock of getRocks()) {
24
- postRockUpdateFire(rock);
25
- }
26
- }
@@ -1,57 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { game } from "../cachedClasses";
3
- import { ModUpgraded } from "../classes/ModUpgraded";
4
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
5
- import { saveDataManager } from "../features/saveDataManager/exports";
6
- import {
7
- postRoomClearChangedFire,
8
- postRoomClearChangedHasSubscriptions,
9
- } from "./subscriptions/postRoomClearChanged";
10
-
11
- const v = {
12
- room: {
13
- cleared: false,
14
- },
15
- };
16
-
17
- /** @internal */
18
- export function postRoomClearChangedInit(mod: ModUpgraded): void {
19
- saveDataManager("postRoomClearChanged", v, hasSubscriptions);
20
-
21
- mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
22
- mod.AddCallbackCustom(
23
- ModCallbackCustom.POST_NEW_ROOM_REORDERED,
24
- postNewRoomReordered,
25
- );
26
- }
27
-
28
- function hasSubscriptions() {
29
- return postRoomClearChangedHasSubscriptions();
30
- }
31
-
32
- // ModCallback.POST_UPDATE (1)
33
- function postUpdate() {
34
- if (!hasSubscriptions()) {
35
- return;
36
- }
37
-
38
- const room = game.GetRoom();
39
- const roomClear = room.IsClear();
40
-
41
- if (roomClear !== v.room.cleared) {
42
- v.room.cleared = roomClear;
43
- postRoomClearChangedFire(roomClear);
44
- }
45
- }
46
-
47
- // ModCallbackCustom.POST_NEW_ROOM_REORDERED
48
- function postNewRoomReordered() {
49
- if (!hasSubscriptions()) {
50
- return;
51
- }
52
-
53
- const room = game.GetRoom();
54
- const roomClear = room.IsClear();
55
-
56
- v.room.cleared = roomClear;
57
- }
@@ -1,64 +0,0 @@
1
- import {
2
- DamageFlag,
3
- EntityType,
4
- ModCallback,
5
- RoomType,
6
- } from "isaac-typescript-definitions";
7
- import { game } from "../cachedClasses";
8
- import { saveDataManager } from "../features/saveDataManager/exports";
9
- import { hasFlag } from "../functions/flag";
10
- import {
11
- postSacrificeFire,
12
- postSacrificeHasSubscriptions,
13
- } from "./subscriptions/postSacrifice";
14
-
15
- const v = {
16
- level: {
17
- numSacrifices: 0,
18
- },
19
- };
20
-
21
- /** @internal */
22
- export function postSacrificeInit(mod: Mod): void {
23
- saveDataManager("postSacrifice", v, hasSubscriptions);
24
-
25
- mod.AddCallback(
26
- ModCallback.ENTITY_TAKE_DMG,
27
- entityTakeDmgPlayer,
28
- EntityType.PLAYER,
29
- ); // 11
30
- }
31
-
32
- function hasSubscriptions() {
33
- return postSacrificeHasSubscriptions();
34
- }
35
-
36
- // ModCallback.ENTITY_TAKE_DMG (11)
37
- // EntityType.PLAYER (1)
38
- function entityTakeDmgPlayer(
39
- tookDamage: Entity,
40
- _damageAmount: float,
41
- damageFlags: BitFlags<DamageFlag>,
42
- _damageSource: EntityRef,
43
- _damageCountdownFrames: int,
44
- ): boolean | undefined {
45
- if (!hasSubscriptions()) {
46
- return undefined;
47
- }
48
-
49
- const player = tookDamage.ToPlayer();
50
- if (player === undefined) {
51
- return undefined;
52
- }
53
-
54
- const room = game.GetRoom();
55
- const roomType = room.GetType();
56
- const isSpikeDamage = hasFlag(damageFlags, DamageFlag.SPIKES);
57
-
58
- if (roomType === RoomType.SACRIFICE && isSpikeDamage) {
59
- v.level.numSacrifices += 1;
60
- postSacrificeFire(player, v.level.numSacrifices);
61
- }
62
-
63
- return undefined;
64
- }
@@ -1,92 +0,0 @@
1
- // Normally, when a slot is destroyed, the grid collision class changes to
2
- // `EntityGridCollisionClass.GROUND` and sticks around in the room. Thus, checking for this case is
3
- // simple.
4
-
5
- // The special case is when a slot pays out with a collectible item. In this case, it will not stay
6
- // in the room. Instead, it will play the "Prize" animation for 3 game frames, and then despawn (to
7
- // be replaced by a collectible entity). Subsequently, we handle this case by assuming that if the
8
- // slot disappeared 3 frames after it changed to a prize animation, it was a destruction pay-out.
9
-
10
- import {
11
- EntityGridCollisionClass,
12
- EntityType,
13
- ModCallback,
14
- } from "isaac-typescript-definitions";
15
- import { game } from "../cachedClasses";
16
- import { ModUpgraded } from "../classes/ModUpgraded";
17
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
18
- import { SlotDestructionType } from "../enums/SlotDestructionType";
19
- import { saveDataManager } from "../features/saveDataManager/exports";
20
- import {
21
- postSlotDestroyedFire,
22
- postSlotDestroyedHasSubscriptions,
23
- } from "./subscriptions/postSlotDestroyed";
24
-
25
- const PRIZE_GAME_FRAME_DELAY_UNTIL_REMOVAL = 3;
26
-
27
- const v = {
28
- room: {
29
- brokenSlots: new Set<PtrHash>(),
30
- slotPrizeAnimationGameFrame: new Map<PtrHash, int>(),
31
- },
32
- };
33
-
34
- /** @internal */
35
- export function postSlotDestroyedInit(mod: ModUpgraded): void {
36
- saveDataManager("postSlotDestroyed", v, hasSubscriptions);
37
-
38
- mod.AddCallback(
39
- ModCallback.POST_ENTITY_REMOVE,
40
- postEntityRemove,
41
- EntityType.SLOT,
42
- ); // 67
43
-
44
- mod.AddCallbackCustom(
45
- ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED,
46
- postSlotAnimationChanged,
47
- );
48
- }
49
-
50
- function hasSubscriptions() {
51
- return postSlotDestroyedHasSubscriptions();
52
- }
53
-
54
- // ModCallback.POST_ENTITY_REMOVE (67)
55
- function postEntityRemove(entity: Entity) {
56
- const slot = entity as EntitySlot;
57
- const ptrHash = GetPtrHash(slot);
58
- const gameFrameCount = game.GetFrameCount();
59
-
60
- const prizeFrame = v.room.slotPrizeAnimationGameFrame.get(ptrHash);
61
- if (prizeFrame === undefined) {
62
- return;
63
- }
64
-
65
- if (prizeFrame + PRIZE_GAME_FRAME_DELAY_UNTIL_REMOVAL === gameFrameCount) {
66
- postSlotDestroyedFire(slot, SlotDestructionType.COLLECTIBLE_PAYOUT);
67
- }
68
- }
69
-
70
- // ModCallbackCustom.POST_SLOT_ANIMATION_CHANGED
71
- function postSlotAnimationChanged(slot: EntitySlot) {
72
- const ptrHash = GetPtrHash(slot);
73
- const gameFrameCount = game.GetFrameCount();
74
-
75
- const alreadyBroken = v.room.brokenSlots.has(ptrHash);
76
- if (alreadyBroken) {
77
- return;
78
- }
79
-
80
- if (slot.GridCollisionClass === EntityGridCollisionClass.GROUND) {
81
- v.room.brokenSlots.add(ptrHash);
82
- postSlotDestroyedFire(slot, SlotDestructionType.NORMAL);
83
- }
84
-
85
- const sprite = slot.GetSprite();
86
- const animation = sprite.GetAnimation();
87
- if (animation === "Prize") {
88
- v.room.slotPrizeAnimationGameFrame.set(ptrHash, gameFrameCount);
89
- } else {
90
- v.room.slotPrizeAnimationGameFrame.delete(ptrHash);
91
- }
92
- }
@@ -1,68 +0,0 @@
1
- // This provides the logic for the PostSlotInit and PostSlotUpdate callbacks. (The other slot
2
- // callbacks are handled in a different file.)
3
-
4
- import { ModCallback } from "isaac-typescript-definitions";
5
- import { ModUpgraded } from "../classes/ModUpgraded";
6
- import { ModCallbackCustom } from "../enums/ModCallbackCustom";
7
- import { saveDataManager } from "../features/saveDataManager/exports";
8
- import { getSlots } from "../functions/entitySpecific";
9
- import {
10
- postSlotInitFire,
11
- postSlotInitHasSubscriptions,
12
- } from "./subscriptions/postSlotInit";
13
- import {
14
- postSlotUpdateFire,
15
- postSlotUpdateHasSubscriptions,
16
- } from "./subscriptions/postSlotUpdate";
17
-
18
- const v = {
19
- room: {
20
- initializedSlots: new Set<PtrHash>(),
21
- },
22
- };
23
-
24
- /** @internal */
25
- export function postSlotInitUpdateCallbacksInit(mod: ModUpgraded): void {
26
- saveDataManager("postSlotInitUpdate", v, hasSubscriptions);
27
-
28
- mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
29
- mod.AddCallbackCustom(
30
- ModCallbackCustom.POST_NEW_ROOM_REORDERED,
31
- postNewRoomReordered,
32
- );
33
- }
34
-
35
- function hasSubscriptions() {
36
- return postSlotInitHasSubscriptions() || postSlotUpdateHasSubscriptions();
37
- }
38
-
39
- // ModCallback.POST_UPDATE (1)
40
- function postUpdate() {
41
- if (!hasSubscriptions()) {
42
- return;
43
- }
44
-
45
- for (const slot of getSlots()) {
46
- checkNewEntity(slot);
47
- postSlotUpdateFire(slot);
48
- }
49
- }
50
-
51
- // ModCallbackCustom.POST_NEW_ROOM_REORDERED
52
- function postNewRoomReordered() {
53
- if (!hasSubscriptions()) {
54
- return;
55
- }
56
-
57
- for (const slot of getSlots()) {
58
- checkNewEntity(slot);
59
- }
60
- }
61
-
62
- function checkNewEntity(slot: EntitySlot) {
63
- const ptrHash = GetPtrHash(slot);
64
- if (!v.room.initializedSlots.has(ptrHash)) {
65
- v.room.initializedSlots.add(ptrHash);
66
- postSlotInitFire(slot);
67
- }
68
- }
@@ -1,69 +0,0 @@
1
- // This provides the logic for the following callbacks:
2
- // - PostSlotRender
3
- // - PostSlotAnimationChanged
4
-
5
- import { ModCallback } from "isaac-typescript-definitions";
6
- import { DefaultMap } from "../classes/DefaultMap";
7
- import { saveDataManager } from "../features/saveDataManager/exports";
8
- import { getSlots } from "../functions/entitySpecific";
9
- import {
10
- postSlotAnimationChangedFire,
11
- postSlotAnimationChangedHasSubscriptions,
12
- } from "./subscriptions/postSlotAnimationChanged";
13
- import {
14
- postSlotRenderFire,
15
- postSlotRenderHasSubscriptions,
16
- } from "./subscriptions/postSlotRender";
17
-
18
- const v = {
19
- room: {
20
- slotAnimations: new DefaultMap<PtrHash, string, [slot: Entity]>(
21
- (slot: Entity) => {
22
- const sprite = slot.GetSprite();
23
- return sprite.GetAnimation();
24
- },
25
- ),
26
- brokenSlots: new Set<PtrHash>(),
27
- },
28
- };
29
-
30
- /** @internal */
31
- export function postSlotRenderCallbacksInit(mod: Mod): void {
32
- saveDataManager("postSlotRender", v, hasSubscriptions);
33
-
34
- mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
35
- }
36
-
37
- function hasSubscriptions() {
38
- return (
39
- postSlotRenderHasSubscriptions() ||
40
- postSlotAnimationChangedHasSubscriptions()
41
- );
42
- }
43
-
44
- // ModCallback.POST_UPDATE (1)
45
- function postRender() {
46
- if (!hasSubscriptions()) {
47
- return;
48
- }
49
-
50
- for (const slot of getSlots()) {
51
- postSlotRenderFire(slot);
52
- checkSlotAnimationChanged(slot);
53
- }
54
- }
55
-
56
- function checkSlotAnimationChanged(slot: EntitySlot) {
57
- const sprite = slot.GetSprite();
58
- const currentAnimation = sprite.GetAnimation();
59
- const ptrHash = GetPtrHash(slot);
60
- const previousAnimation = v.room.slotAnimations.getAndSetDefault(
61
- ptrHash,
62
- slot,
63
- );
64
- v.room.slotAnimations.set(ptrHash, currentAnimation);
65
-
66
- if (currentAnimation !== previousAnimation) {
67
- postSlotAnimationChangedFire(slot, previousAnimation, currentAnimation);
68
- }
69
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getSpikes } from "../functions/gridEntitySpecific";
3
- import {
4
- postSpikesRenderFire,
5
- postSpikesRenderHasSubscriptions,
6
- } from "./subscriptions/postSpikesRender";
7
-
8
- /** @internal */
9
- export function postSpikesRenderInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postSpikesRenderHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_RENDER (2)
18
- function postRender() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const spikes of getSpikes()) {
24
- postSpikesRenderFire(spikes);
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getSpikes } from "../functions/gridEntitySpecific";
3
- import {
4
- postSpikesUpdateFire,
5
- postSpikesUpdateHasSubscriptions,
6
- } from "./subscriptions/postSpikesUpdate";
7
-
8
- /** @internal */
9
- export function postSpikesUpdateInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postSpikesUpdateHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_UPDATE (1)
18
- function postUpdate() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const spikes of getSpikes()) {
24
- postSpikesUpdateFire(spikes);
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getTNT } from "../functions/gridEntitySpecific";
3
- import {
4
- postTNTRenderFire,
5
- postTNTRenderHasSubscriptions,
6
- } from "./subscriptions/postTNTRender";
7
-
8
- /** @internal */
9
- export function postTNTRenderInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_RENDER, postRender); // 2
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postTNTRenderHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_RENDER (2)
18
- function postRender() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const tnt of getTNT()) {
24
- postTNTRenderFire(tnt);
25
- }
26
- }
@@ -1,26 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { getTNT } from "../functions/gridEntitySpecific";
3
- import {
4
- postTNTUpdateFire,
5
- postTNTUpdateHasSubscriptions,
6
- } from "./subscriptions/postTNTUpdate";
7
-
8
- /** @internal */
9
- export function postTNTUpdateInit(mod: Mod): void {
10
- mod.AddCallback(ModCallback.POST_UPDATE, postUpdate); // 1
11
- }
12
-
13
- function hasSubscriptions() {
14
- return postTNTUpdateHasSubscriptions();
15
- }
16
-
17
- // ModCallback.POST_UPDATE (1)
18
- function postUpdate() {
19
- if (!hasSubscriptions()) {
20
- return;
21
- }
22
-
23
- for (const tnt of getTNT()) {
24
- postTNTUpdateFire(tnt);
25
- }
26
- }
@@ -1,36 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { saveDataManager } from "../features/saveDataManager/exports";
3
- import {
4
- postTearInitLateFire,
5
- postTearInitLateHasSubscriptions,
6
- } from "./subscriptions/postTearInitLate";
7
-
8
- const v = {
9
- room: {
10
- firedSet: new Set<PtrHash>(),
11
- },
12
- };
13
-
14
- /** @internal */
15
- export function postTearInitLateInit(mod: Mod): void {
16
- saveDataManager("postTearInitLate", v, hasSubscriptions);
17
-
18
- mod.AddCallback(ModCallback.POST_TEAR_UPDATE, postTearUpdate); // 40
19
- }
20
-
21
- function hasSubscriptions() {
22
- return postTearInitLateHasSubscriptions();
23
- }
24
-
25
- // ModCallback.POST_TEAR_UPDATE (40)
26
- function postTearUpdate(tear: EntityTear) {
27
- if (!hasSubscriptions()) {
28
- return;
29
- }
30
-
31
- const index = GetPtrHash(tear);
32
- if (!v.room.firedSet.has(index)) {
33
- v.room.firedSet.add(index);
34
- postTearInitLateFire(tear);
35
- }
36
- }
@@ -1,41 +0,0 @@
1
- import { ModCallback } from "isaac-typescript-definitions";
2
- import { saveDataManager } from "../features/saveDataManager/exports";
3
- import {
4
- postTearInitVeryLateFire,
5
- postTearInitVeryLateHasSubscriptions,
6
- } from "./subscriptions/postTearInitVeryLate";
7
-
8
- const v = {
9
- room: {
10
- firedSet: new Set<PtrHash>(),
11
- },
12
- };
13
-
14
- /** @internal */
15
- export function postTearInitVeryLateInit(mod: Mod): void {
16
- saveDataManager("postTearInitVeryLate", v, hasSubscriptions);
17
-
18
- mod.AddCallback(ModCallback.POST_TEAR_UPDATE, postTearUpdate); // 40
19
- }
20
-
21
- function hasSubscriptions() {
22
- return postTearInitVeryLateHasSubscriptions();
23
- }
24
-
25
- // ModCallback.POST_TEAR_UPDATE (40)
26
- function postTearUpdate(tear: EntityTear) {
27
- if (!hasSubscriptions()) {
28
- return;
29
- }
30
-
31
- // This callback fires on frame 1.
32
- if (tear.FrameCount === 0) {
33
- return;
34
- }
35
-
36
- const index = GetPtrHash(tear);
37
- if (!v.room.firedSet.has(index)) {
38
- v.room.firedSet.add(index);
39
- postTearInitVeryLateFire(tear);
40
- }
41
- }